问题描述
- 请教一个c语言问题。谢谢!
-
原例题:#include <stdio.h> #define maxline 1000 int getline(char line[],int max); void copy(char to[],char from[]); int main() {int len; char line[maxline]; char longest[maxline]; int max = 0; while((len = getline(line,maxline))>0) { if(len > max) { max = len; copy(longest,line); } } if(max > 0) printf("%s",longest); } int getline(char s[],int max) { char c; int i; for(i = 0;i<max && (c=getchar())!=EOF && c!=' ';++i) s[i] = c; if(c == ' ') { s[i] = c; ++i; } s[i] = ''; return i; } void copy(char to[],char from[]) { int i = 0; while ((to[i] = from[i]) != '') ++i; }
如果将copy函数改为如下就出错了,请问一下为什么??
void copy(char to[],char from[]) { int i = 0; for(i=0;from[i]!='';++i) to[i]=from[i]; }
解决方案
void copy(char to[],char from[])
{
int i = 0;
for(i=0;from[i]!='';++i)
to[i]=from[i];
}这种写法不会复制字符串的终止符''
解决方案二:
void copy(char to[],char from[])
{
int i = 0;
for(i=0;from[i]!='';++i)
to[i]=from[i];
to[i]='';
}
解决方案三:
c);} b a &c); if(a%d>%d" &b &a c/n"); scanf("%d%d%d" b t; printf("input a c b z);}|||#includemain(){ int a y x y的值*/ printf("small to big: %d %d %d/n" z的值*/ if(y答案就在这里:请教一个C语言问题
解决方案四:
终止符''不会被复制
解决方案五:
加一个to[i] = ''
时间: 2024-09-28 13:01:31