为什么变量i在循环中不增加?

时间:2019-03-01 10:09:48

标签: c for-loop

这是什么问题?我试图连接两个字符串。

这是完整的代码。仅打印第一个字符串。

#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);
}

2 个答案:

答案 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);

这既简单又安全。 并执行功能以自动释放ss2