用函数调用实现字符串的复制- #include <stdio.h>
- void copy_string(char *to,char *from){
- while (*from!= '\0') {
- *to = *from;
- from++;
- to++;
- }
- *to = '\0';
- }
- int main(int argc, const char * argv[]) {
- char a[] = "hello",b[10];
- copy_string(b,a);
- printf("%s",b);
- return 0;
- }
复制代码 然后这个copy_string函数可以简化成下面这个样子- void copy_string(char *to,char *from){
- while ((*to = *from)!= '\0') {//在while循环判断的时候完成调换
- from++;
- to++;
- }
- }
复制代码 然后还可以继续简化- void copy_string(char *to,char *from){
- while ((*to++ = *from++)!= '\0');//在循环条件判断的时候完成调换和指针的移动
- }
复制代码 因为'\0'的ASCII码为0,所以可以继续简化为- void copy_string(char *to,char *from){
- while ((*to++ = *from++)!= 0);
- }
复制代码 而关系表达式(*to++ = *from++)!= 0又可以看作是真假的判断因此可以再简化- void copy_string(char *to,char *from){
- while ((*to++ = *from++));
- }
复制代码 虽然这样写法不利于阅读,但是作为一种方式,确实让人认识到指针的强大
|
|