首页 > 解决方案 > 连接两个字符串程序没有给出正确的输出

问题描述

#include<stdio.h>
char * sstrcat(char*,char*);
void main() {
    char *c;
    char s[100] = "abcde";
    char t[] = "fghi";
    c = sstrcat(s,t);
    printf("%s",c);
}

char* sstrcat(char *s,char *t) {
    char* temp = s;
    while(*s++ != '\0');
    while((*s++ = *t++) != '\0');

    return temp;
}

上面编写的代码我得到输出abcde但预期的输出是字符串st.

请帮我弄清楚我在做什么错误?谢谢。

标签: cpointers

解决方案


这条线

while(*s++ != '\0');

s将在比较完成后递增,留下'\0',这是数组中的字符串终止符。

如果您可以使用调试器,您会发现所有值都在您的数组中,它只会printf停在'\0'


推荐阅读