strcpy函数与main函数的实现不了?
#include<stdio.h>char strcpy(char *s, char *t)
{
while (*s++ = *t++)
;
return *s;
}
void main()
{
char *s = "I love ";
char *t = "China!";
char *a = " ";
strcpy(s, t);
while(*a++ = *s++)
;
printf("%s\n",a);
}
此程序在编译器中并没有错误,
但为什么编译器会没有结果呢?
请高手帮帮忙!
回复 3# sxn0508 的帖子
本人刚学c的;我大概根据师兄你的提示;
将程序改为:
#include<stdio.h>
#include<string.h>
void strcpy(char *s, char *t)
{
while (*s++ = *t++)
;
}
void main()
{
char *str1 = "I love ";
char *str2 = "China!";
char *a = " ";
strcpy(str1, str2);
while(*a++ = *str1++)
;
printf("%s\n",a);
}
可编译器还是没有结果?
究竟是什么原因?
要怎样修改才行? [quote][bo][un]huangch[/un] 在 2008-7-21 14:45 的发言:[/bo]
[color=Red] char *s = "I love ";
char *t = "China!";
char *a = " ";[/color]
[tk13] while(*a++ = *str1++) 這一句已經把a移到字符串結束的那個\0上面了
當然沒有結果哈
回复 6# lingluoz 的帖子
[em08]不是很懂? 将程序改成这样:
#include<stdio.h>
#include<string.h>
void strcpy(char *s, char *t)
{
while (*s++ = *t++)
;
}
void main()
{
char *str1 = "I love ";
char *str2 = "China!";
strcpy(str1, str2);
printf("%s\n",str1);
}
还是看不出结果来?
究竟错在哪里? 汗,这里很容易理解!你只需要在把S,T回到原来的地方就行!
这里回到S=I LOVE!
T=CHINA!大约就可以了!
有什么错误的,请大为指正,谢谢!
[[it] 本帖最后由 独孤小梦 于 2008-7-21 16:50 编辑 [/it]] [quote][bo][un]独孤小梦[/un] 在 2008-7-21 16:49 的发言:[/bo]
汗,这里很容易理解!你只需要在把S,T回到原来的地方就行!
这里回到S=I LOVE!
T=CHINA!大约就可以了!
有什么错误的,请大为指正,谢谢!
[ 本帖最后由 独孤小梦 于 2008-7-21 16:50 ... [/quote]
请问
怎样回啊?? 没有什么回不回的问题。
在你8#程序的基础上,把
char *str1 = "I love ";
char *str2 = "China!";
改成
char str1[] = "I love ";
char str2[] = "China!";
就可以了。 [quote][bo][un]hello_moto[/un] 在 2008-7-21 18:52 的发言:[/bo]
没有什么回不回的问题。
在你8#程序的基础上,把
char *str1 = "I love ";
char *str2 = "China!";
改成
char str1[] = "I love ";
char str2[] = "China!";
就可以了。 [/quote]
谢谢!
是可以了!
但小弟在其中的原理上,并不是很明白!
指针不是指向其地址吗?
为什么这样定义不行呢?
char *str1 = "I love ";
char *str2 = "China!"; "I love ";
字符串常量,常量的修改肯定失败。数组就没这个限制了
这样能行了
#include<stdio.h>void strcpy(char *s, char *t)
{
while (*s++ = *t++)
;
}
void main()
{
char str1[] = "I love ";
char str2[] = "China!";
strcpy(str1, str2);
printf("%s\n",str1);
} 1、不知你的return有什么用。
2、你的指针s所存储的地址发生了改变。
3、建议学会调试程序,其实这样的错误单步一下很容易发现。
页:
[1]
