字符串连接问题...

fang123424878 2008-06-13 12:07:40
int i=0 , j=0;
char s1[100],s2[100];
cout<<"请输入第一个字符串"<<endl;
cin>>s1;
cout<<"请输入第二个字符串"<<endl;
cin>>s2;
while(s1[i])
i++;
while(s2[j])
s1[i++] = s2[j++];
s1[i] = '\0';
cout<<"连接后的字符串为:"<<s1<<endl;

请问这两句语句是什么意思:
s1[i++] = s2[j++];
s1[i] = '\0';

能详细解释一下吗?谢谢
...全文
78 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
seraphsky 2008-06-13
  • 打赏
  • 举报
回复
还是用string类吧
treeheni 2008-06-13
  • 打赏
  • 举报
回复
请问这两句语句是什么意思:
s1[i++] = s2[j++];
s1[i] = '\0';

能详细解释一下吗?谢谢
-------------------
经过第一个while后,i等于s1[]的长度,也就是说现在使用第二个while把s2[](j++)用赋值的方式连接到s1[]后面。
最后i=sizeof(s1)+sizeof(s2)+1,再把结束符'/0'连接到最后。
lijiawlm 2008-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bargio_susie 的回复:]
请问这两句语句是什么意思:
s1[i++] = s2[j++];
s1[i] = '\0';

——————————————————————
就是把s2中的字符一个个的拷到s1中去。

最后把s1的尾字符设置为'\0',因为字符串都是以'\0'结束的。
[/Quote]

都解释好了 我就不多废话了!
lan_6373836 2008-06-13
  • 打赏
  • 举报
回复
就是啊!数组存储的字符串在C++里面交C串!是以'\0'结尾的啊!

while(s2[j]) //把本来末尾的'\0'给滤掉了啊!最后要加上'\0',表示字符串结束!
s1[i++] = s2[j++];
s1[i] = '\0'; //加'\0'

tiantangxingkong 2008-06-13
  • 打赏
  • 举报
回复
while(s2[j])
s1[i++] = s2[j++];
s1[i] = '\0';
————————————————————————————————————————————————
可以写成简单一些的:
while(s2[j])
{
s1[i]=s2[j];
i++;
j++;
}
s1[i]='\0';

个人认为这样还好读一些。
解释参考楼上就行。
bargio_susie 2008-06-13
  • 打赏
  • 举报
回复
请问这两句语句是什么意思:
s1[i++] = s2[j++];
s1[i] = '\0';

——————————————————————
就是把s2中的字符一个个的拷到s1中去。

最后把s1的尾字符设置为'\0',因为字符串都是以'\0'结束的。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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