两个字符串之间是否有连接的函数/公共方法,而string2出现在指定位置的string1中?
如果问题不够明确,请看一下这个例子:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[100] = "I love Gyros";
concatenate(&str[2], "dont ");
printf(str);
return 0;
}
输出:
I dont love Gyros
答案 0 :(得分:4)
两个字符串之间是否有连接的函数/公共方法,而string2出现在指定位置的string1中?
不,没有。
您可以使用多种方法完成您的尝试。一种方法是使用sprintf
。
char str[100];
sprintf(str,"I %s love Gyros", "don't");
另一种方法是将str
的内容向右移动所需的数量,然后设置中间元素的值。
#include <stdio.h>
#include <string.h>
void insertInString(char* str1, size_t pos, char const* str2)
{
size_t len1 = strlen(str1);
size_t len2 = strlen(str2);
size_t i = 0;
// Shift the contents of str1
for ( i = len1; i >= pos; --i )
{
str1[i+len2] = str1[i];
}
// Now place the contents of str2 starting from pos
for ( i = 0; i < len2; ++i )
{
str1[i+pos] = str2[i];
}
}
int main()
{
char str[100] = "I love Gyros";
insertInString(str, 2, "don't ");
printf("%s\n", str);
return 0;
}
答案 1 :(得分:0)
没有任何功能可以做你想要的。 而不是让函数连接哪个对它起作用是非常重要的,有函数insert_phrase与原型... char * insert_phrase(char * string,char * phrase,size_t after_word); 你的例子现在会读......
Insert_phrase(str,&#34; don&#39; t&#34;,1);
任何实际使用的连接函数都需要在插入don之前对两个参数进行词法分析。