| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 364 人关注过本帖
标题:关于\0 的问题
只看楼主 加入收藏
waxxpfhh
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2014-5-16
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
关于\0 的问题
将长度为 n 的字符串 s 分成两个子串,前 m(任意值)个字符生成子串s1,后 n-m个字符生成子串s2。约定:当m≥n时,s1等于原串,s2为空串;当m≤0时,s1为空串,s2等于原串。编写程序段时,可以使用库函数strcpy。
void split(char s[],char s1[],char s2[],int m)
{
int n,i,j;
n=strlen(s);
if(m>=n)
{
strcpy(s1,s);
strcpy(s2,"");
}
 else if(m==0)
 {
  strcpy(s2,s);
  strcpy(s1,"");
 }
      else
     {
      for(i=0;i<m;i++)
      s1[i]=s[i];
      s1[i]='\0';//这一步不是把上一步的结果给变了吗,为什么要有这一步?
      for(j=0;s2[j]=s[i];i++,j++);
     }
搜索更多相关主题的帖子: 编写程序 字符串 
2014-05-17 17:50
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:4 
for循环如果不带大括号就只能控制下面一行;s1[i]='\0',这个地方的意思是把最后一个元素设为“\0”;
数组是以“\0”结束的。

我不是砖家,要努力成为砖家。
2014-05-17 17:55
loveClangage
Rank: 8Rank: 8
来 自:广东云浮
等 级:蝙蝠侠
帖 子:326
专家分:891
注 册:2013-8-23
收藏
得分:4 
这是个字符串的结束标志

编写的程序,不能改变世界,却可以改变自己...
2014-05-17 20:58
rmbking
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:36
专家分:157
注 册:2014-3-19
收藏
得分:4 
没有改变上一步的结果,最后做的是给s[m-1]赋值,然后for循环内做i++,此时i=m,再判断i<m不成立,此时退出,s[m]='\0';
最后设置'\0'是为了在输出时找到字符串的末尾。
2014-05-17 22:11
快速回复:关于\0 的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035312 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved