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;
    }
  • 相关阅读:
    1295. 统计位数为偶数的数字『简单』
    1281. 整数的各位积和之差『简单』
    697. 数组的度『简单』
    748. 最短完整词『简单』
    832. 翻转图像『简单』
    1446. 连续字符『简单』
    1455. 检查单词是否为句中其他单词的前缀『简单』
    1160. 拼写单词『简单』
    1304. 和为零的N个唯一整数『简单』
    1103. 分糖果 II『简单』
  • 原文地址:https://www.cnblogs.com/xiximayou/p/12121521.html
Copyright © 2011-2022 走看看