zoukankan      html  css  js  c++  java
  • c语言之利用指针复制字符串的几种形式

    第一种:

    #include<stdio.h>
    #include<iostream>
    
    void copy_string(char* p1, char* p2) {
        for (; *p1 != ''; *p1++,*p2++)
        {
            *p2 = *p1;
        }
        *p2 = '';
    }
    
    int main() {
        char* str1 = (char*) "hello world";
        char str2[] = "i am a student";
        copy_string(str1, str2);
        printf("%s
    ",str2);
        system("pause");
        return 0;
    }

    第二种:

    #include<stdio.h>
    #include<iostream>
    
    void copy_string(char* p1, char* p2) {
        while ((*p2 = *p1) != '')
        {
            *p2++;
            *p1++;
        }
    }
    
    int main() {
        char* str1 = (char*)"hello world";
        char str2[] = "i am a student";
        copy_string(str1, str2);
        printf("%s
    ", str2);
        system("pause");
        return 0;
    }

    第三种:

    #include<stdio.h>
    #include<iostream>
    
    void copy_string(char* p1, char* p2) {
        //指针运算符比++优先级高
        //也就是先将*p1的值给*p2,再进行++操作,i++是先赋值,后自增
        while ((*p2++ = *p1++) != '')
    }
    
    int main() {
        char* str1 = (char*)"hello world";
        char str2[] = "i am a student";
        copy_string(str1, str2);
        printf("%s
    ", str2);
        system("pause");
        return 0;
    }

    第四种:

    #include<stdio.h>
    #include<iostream>
    
    void copy_string(char* p1, char* p2) {
        while (*p1 != '') {
            *p2++ = *p1++;
        }
        *p2 = '';
    }
    
    int main() {
        char* str1 = (char*)"hello world";
        char str2[] = "i am a student";
        copy_string(str1, str2);
        printf("%s
    ", str2);
        system("pause");
        return 0;
    }

    第五种:

    #include<stdio.h>
    #include<iostream>
    
    void copy_string(char* p1, char* p2) {
        //当*p2++ = *p1++变为0时,就会结束循环
        while (*p2++ = *p1++) {
            ; //'' == 0;结束标志
        }
    }
    
    int main() {
        char* str1 = (char*)"hello world";
        char str2[] = "i am a student";
        copy_string(str1, str2);
        printf("%s
    ", str2);
        system("pause");
        return 0;
    }

    第六种:

    #include<stdio.h>
    #include<iostream>
    
    void copy_string(char* p1, char* p2) {
        for (; *p2++ = *p1++;) {
            ; //'' == 0;结束标志
        }
    }
    
    int main() {
        char* str1 = (char*)"hello world";
        char str2[] = "i am a student";
        copy_string(str1, str2);
        printf("%s
    ", str2);
        system("pause");
        return 0;
    }

    第七种:

    #include<stdio.h>
    #include<iostream>
    
    void copy_string(char str1[], char str2[]) {
        char* p1, * p2;
        p1 = str1;
        p2 = str2;
        while((*p2++ = *p1++)!='') {
            ; //'' == 0;结束标志
        }
    }
    
    int main() {
        char* str1 = (char*)"hello world";
        char str2[] = "i am a student";
        copy_string(str1, str2);
        printf("%s
    ", str2);
        system("pause");
        return 0;
    }
  • 相关阅读:
    cocos2dx-lua捕获用户touch事件的几种方式
    Java并发编程之闭锁CountDownLatch简单介绍
    opencv视频播放
    完全备份、差异备份以及增量备份的区别
    如何实现文件增量同步——算法
    Oracle提示“资源正忙,需指定nowait”的解决方案
    oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT
    一次oracle大量数据删除经历
    rownum的使用-分页
    sql语句分页多种方式ROW_NUMBER()OVER
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12121521.html
Copyright © 2011-2022 走看看