新人求帮助

IT保安 2012-07-17 10:48:54
将字符串B跟到字符串A后面去,大家帮我看看,哪里写的不对,按我写的,输出就是"abc",而不是需要的"abcab"

#include "stdio.h"
#include "string.h"


void main()
{
char a[7]="abc";
char b[3]="ab";
int i=0,j;
for(i=0;a[i]=='\0';i++) //这里找到\0的位置,就是a[i]
{
for(j=0;b[j]!='\0';j++) //然后如果b[j]不是\0,就执行下面,将b[j]赋值给a[i],i和j都在自增
{
a[i]=b[j];
i++;
}
a[i]='\0'; //b[j]==\0的时候,相当于a[i]到尾巴,给他赋值\0,代表字符串这里结束了
}

for(i=0;a[i]!='\0';i++) //再循环输出a[i]
printf("%c",a[i]);
printf("\n");
}
...全文
97 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
thulongkang 2012-07-18
  • 打赏
  • 举报
回复
有问题多交流!
IT保安 2012-07-17
  • 打赏
  • 举报
回复
了解了,刚才自己也想出来个办法,
for(i=0;a[i]=='\0';i++)这段给delete掉,
更换成
while(a[i]!='\0')
i++;

就行了,
多谢回复
thulongkang 2012-07-17
  • 打赏
  • 举报
回复
你第一个for循环没用啊!那个a[i]=='\0'一开始就是假,循环直接退出了;
for(i=0;a[i]!='\0';i++) //再循环输出a[i]
printf("%c",a[i]);
printf("\n");
}
只要这个循环不就只输出
a
b
c
么?
其实要想正确输出结果,在写一个和上面的循环相同的代码就行了(对b[]操作)。
图灵狗 2012-07-17
  • 打赏
  • 举报
回复
逻辑完全不正确,直接用strcat函数吧。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧