为什么这个程序执行的结果出现很多‘烫’字求大神解答!

为什么这个程序执行的结果出现很多‘烫’字求大神解答!,第1张

你是做串拼接是吧,下面是在你代码上面修改的结果,注释部分是有问题的。

#include<stdioh>

void main()

{

 char s1[40],s2[20];

 int i,j;

 memset(s1,0,sizeof(s1));//串初始化,否则只有一个串结束符,后面的就是乱码了

     

 printf("请输入字符串s1:");

 gets(s1);

 printf("请输入字符串s2:");

 gets(s2);

 for(i=0,j=0;s2[j]!='\0';i++)

 {

  if(s1[i]=='\0')

  {

   s1[i]=s2[j];

   j++;

  }

 

 }

 printf("s1:%s\n",s1);

 getch();

}

望采纳!

把出现烫烫的那个字符串初始化下就行

比如是  char  name[50]=“ ”,赋值为空就行了

举个例子

#include<iostream>

#include<stringh>

using namespace std;

void main()

{

char  name[50][50];

cin>>name[1];

cin>>name[2];

cin>>name[3];

for(int i=0;i<3;i++)

puts(name[i]);

}

输出就是

#include<iostream>

#include<stringh>

using namespace std;

void main()

{

char  name[50][50]={};//////////////初始化

cin>>name[1];

cin>>name[2];

cin>>name[3];

for(int i=0;i<3;i++)

puts(name[i]);

}

先说你问的问题吧因为数组的长度是20个,你直接使用的长度只有 weere加个结束符\0是6个,也就是后面14个都是没使用过的但是

for(int k=0;k<20;k++)

cout<<b[k];

这样就把没使用过的也输来了,没用过的字符处是系统给的默认值,所以有好几个烫

再说个题外话你这程序的问题,找到要删除的字符就设置成\0是不行的,因为字符串结束标记是\0如果你把要删除的字符设置成\0,比如 abc你要删除b最后就成了 a\0c 这时如果直接输出这个字符串,到a就断了,后面的c不会出来,因为遇到了\0

以上就是关于为什么这个程序执行的结果出现很多‘烫’字求大神解答!全部的内容,包括:为什么这个程序执行的结果出现很多‘烫’字求大神解答!、为什么这个程序执行的时候会出现 烫烫烫。。。。急求啊~~!!!!、为什么我的C++程序运行有六个烫等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10214856.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存