c - 连接两个字符串程序没有给出正确的输出
问题描述
#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但预期的输出是字符串s
和t
.
请帮我弄清楚我在做什么错误?谢谢。
解决方案
这条线
while(*s++ != '\0');
s
将在比较完成后递增,留下'\0'
,这是数组中的字符串终止符。
如果您可以使用调试器,您会发现所有值都在您的数组中,它只会printf
停在'\0'
推荐阅读
- r - 在侧边栏菜单仪表板中添加指向外部 URL 的链接
- .net - docker for windows 中的 Web 容器到 Web api 容器的通信
- python - 如何在 python 中更改 KivyMD 文件资源管理器,以便双击打开一个目录
- css - 蚂蚁设计抽屉头固定
- java - 在带有 SSO 的 JSF 网站上创建 PWA
- java - 加密 ODS 存档中的文件
- asynchronous - F# Async maxDegreeOfParallelism 的最佳使用
- ios - 快速阴影和拐角半径不可见
- python - 3D 网格上具有周期性边界的球体
- r - 仅在我更改选择时更新