
#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 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 每次运行 to[i++]=from[i++],i 都加了两次。 |
4 Mgzsnothing OP @whoami9894 感觉自己问了个智障问题...多谢了 |