|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 54黑科技 于 2019-10-31 15:19 编辑
#include <stdio.h>
void main()
{
char a[] ="the boy is clever!",b[40];
int i;
for(i = 0;*(a + i) != '\n';i++)
{
*(b + i) = *(a + i);
}
*(b + i) = '\n';
printf("The string a is:%s\n",a);
printf("The string b is:");
for(i = 0;b[i] != '\n';i++ )
{
printf("%c",b[i]);
}
}
本帖最后由 jackz007 于 2019-10-31 15:56 编辑
字符串 a[] 中根本就没有回车符 '\n',所以,for 循环会在下标越界以后的字符串外恰巧遇到一个回车符时,才会终止循环和字符串拷贝。
所以,你的代码必须这样修改:
- #include <stdio.h>
- void main()
- {
- char a[] ="the boy is clever!" , b[40] ;
- int i ;
- for(i = 0 ; * (a + i) != '\0' ; i ++) * (b + i) = * (a + i) ;
- * (b + i) = '\0' ;
- printf("The string a is : %s\n" , a) ;
- printf("The string b is : ") ;
- for(i = 0 ; * (b + i) != '\0'; i ++) printf("%c" , * (b + i)) ;
- }
复制代码
|
|