这是什么问题?我试图连接两个字符串。
这是完整的代码。仅打印第一个字符串。
#include<stdio.h>
main()
{
char s[100],s2[100];
printf("Enter a String\n");
scanf("%s",&s);
printf("Enter second String\n");
scanf("%s",&s2);
int i=strlen(s);
//printf("%d",i);
int j;
for(j=0;s2[j]!='\0';++j)
{
i+=1;
s[i]=s2[j];
}
printf("%s",s);
}
答案 0 :(得分:1)
正如已经评论过的那样,您跳过了s的终止符, 更改为
:hover
,您应该在那里。请记住,如果不检查结果字符串的长度,可能会使s [100]数组溢出。
答案 1 :(得分:-1)
如果您想更安全地编写此代码,并且不要溢出s变量,请使用以下代码:
size_t size = strlen(s) + strlen(s2);
char* result = (char*) malloc(sizeof(char) * size + 1);
sprintf(result, "%s%s", size);
这既简单又安全。
并执行功能以自动释放s
和s2
。