#include <stdio.h>
#include <curses.h>
int main()
{
void copy_string(char from[], char to[]);
char a[] = "I am a teacher";
char b[] = "you my student";
char * from = a, * to = b;
printf("string a = %s\n string b = %s\n",a,b);
printf("\ncopy string a to string b:\n");
copy_string(from, to);
printf("string a = %s\nstring b = %s\n",a,b);
return 0;
}
void copy_string(char from[],char to[])
{
int i = 0;
while(from[i]!='\0')
{
to[i++]=from[i++];
}
to[i]='\0';
}
第一段输出结果为:
string a = I am a teacher
string b = you my student
copy string a to string b:
string a = I am a teacher
string b = om aytsauhert
#include <stdio.h>
#include <curses.h>
int main()
{
void copy_string(char from[], char to[]);
char a[] = "I am a teacher";
char b[] = "you my student";
char * from = a, * to = b;
printf("string a = %s\n string b = %s\n",a,b);
printf("\ncopy string a to string b:\n");
copy_string(from, to);
printf("string a = %s\nstring b = %s\n",a,b);
return 0;
}
void copy_string(char from[],char to[])
{
int i = 0;
while(from[i]!='\0')
{
to[i]=from[i];
i++;
}
to[i]='\0';
}
想请教的问题是:
to[i]=from[i];
i++;
改成了
to[i++]=from[i++];
之后为什么结果是不对的?
1
whoami9894 2018-09-19 19:01:53 +08:00 via Android 1
to[i++] = from[i++]
一次迭代中 i += 2 |
2
whoami9894 2018-09-19 19:03:20 +08:00 via Android
如果这样写你需要给两个数组分别分配指针,然后 to[i++] = from[j++]
|
3
SupperMary 2018-09-19 19:09:16 +08:00 via Android 1
每次运行 to[i++]=from[i++],i 都加了两次。
|
4
Mgzsnothing OP @whoami9894 感觉自己问了个智障问题...多谢了
|