printf("感觉这个算法有点很巧妙 &&也有点小疑问")

感觉在继续 2013-04-02 12:04:43
//实现的是不用字符串处理函数 连接两个字符串
#include <stdio.h>
void main()
{
char lj(char m[100],char n[100]);
char str1[100],str2[100];
gets(str1);
gets(str2);
lj(str1,str2);
puts(str1);
}
char lj(char m[100],char n[100]){
int i,j;
for(i=0;m[i];i++); //就是这里 为什么它能检测到数组str1[]里的字符个数,它的原理是什么
for(j=0;n[j]!='\0';i++,j++)
m[i]=n[j];
m[i]='\0';
return 0;
}
...全文
147 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
感觉在继续 2013-04-02
  • 打赏
  • 举报
回复
引用 2 楼 lexrate 的回复:
引用for(i=0;m[i];i++); //就是这里 为什么它能检测到数组str1[]里的字符个数,它的原理是什么 就是判断m[i]非零。由于字符串总是以0来作为结束符的,所以当遍历str1结束时,m[i]的值就是0了。此时i就是str1的长度。
字符串不是以\0作为结束符的么?
lexrate 2013-04-02
  • 打赏
  • 举报
回复
引用
for(i=0;m[i];i++); //就是这里 为什么它能检测到数组str1[]里的字符个数,它的原理是什么
就是判断m[i]非零。由于字符串总是以0来作为结束符的,所以当遍历str1结束时,m[i]的值就是0了。此时i就是str1的长度。
感觉在继续 2013-04-02
  • 打赏
  • 举报
回复
不要沉啊!!1
lexrate 2013-04-02
  • 打赏
  • 举报
回复
‘\0’的值就是0。下面的写法是等价的

char ch=0;

或者

char ch='\0';

  • 打赏
  • 举报
回复
c的字符串以'\0'结尾,'\0'的值就是0。 A byte with all bits set to 0, called the null character, shall exist in the basic execution character set; it is used to terminate a character string.

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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