我想知道如何连接子字符串。
例如,如果我被赋予 xyz 这个词,我希望我的输出为 xxyxyz
我尝试使用Strncat编写代码,基本上我想提取子字符串并将其连接到输出中。
我如何退出'来自用户输入生成的字符串的子字符串,并能够将其输入到C?
的字符串格式中 #include <stdio.h>
#include <string.h>
int main()
{
char str[100];
int i;
printf("Enter Word :" );
scanf("%s",str);
for(i=0;i<strlength(str);i++){
strncat(str(i),str(i++),i++)
}
printf("conc : %s" , str);
return 0;
}
答案 0 :(得分:2)
您需要为结果字符串使用单独的变量,而不是连接到您开始使用的相同字符串。将其初始化为空字符串,然后使用strncat
将子字符串连接到它。
要获取子字符串,请使用strncpy()
。
char input[100];
char output[5000] = "";
size_t i;
printf("Enter word: ");
scanf("%s", input);
size_t len = strlen(input);
for (i = 0; i < len; i++) {
strncat(output, input, i);
}
printf("conc: %s\n", output);
答案 1 :(得分:0)
我们可以用不同的方式连接子字符串
一种方式就像你做了很少的修改(通过动态分配内存和使用数组的其他方式)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *str;
int i, len;
str = (char *) malloc(100);
printf("Enter word: ");
scanf("%s", str);
len = strlen(str);
for (i = 1; i <= len; i++)
{
strncat(str, str, i);
}
strcpy(str,str+len);
printf("conc: %s\n", str);
return 0;
} // main
或
int main()
{
char str[100] ={0};
char ResultString[100] ={0};
int i, len;
printf("Enter word: ");
scanf("%s", str);
len = strlen(str);
for (i = 1; i <= len; i++)
{
strncat(ResultString, str, i);
}
printf("conc: %s\n", ResultString);
return 0;
} // main