首页 > 其他 > 详细

指针引用字符串

时间:2020-06-23 17:04:44      阅读:67      评论:0      收藏:0      [点我收藏+]
#include<stdio.h>

//void copy(char a[],char b[])       //定义一个复制字符串的函数
void copy(char *a, char *b)         //等价于传入数组名
{
    int i;
    for(i =0; a[i] != ‘\0‘; i++)
    {
        b[i] = a[i];
    }
    b[i] = ‘\0‘;       //在末尾手动加入‘\0’结束字符串复制,以免在末尾出现未知字符
}
//总结,调用函数时,不管是传入数组名还是字符指针,本质上是一样的,编译器会把数组名当作指针变量处理
//函数的形参也是同样的道理
int main(void)
{
    char str[] = "i love you";      //其实最后一个字符是‘\0’,字符串的结束标值,但是打印不出来
    printf("%s\n",str);
    printf("%c\n",str[7]);
    printf("%c\n",*(str + 7));      //用指针的方式输出

    char * li = "wo shi dahema";       //声明一个字符型指针变量,存储的是字符串首字符的地址
    printf("%s\n",li);
    printf("%c\n",li[7]);
    printf("%c\n",*(li + 7));  

    int a[] = {1,2,3,4,5,6,7,8,9};
    //int * a = {1,2,3,4,5}     //报错,其他类型无法这样使用
    printf("%d\n",a);
    printf("%d\n",a[5]);
    printf("%d\n",*(a+5));

    //字符串的复制
    char str_copy[15];
    for(int i=0; str[i] != ‘\0‘; i++)
    {
        //*(str_copy + i) = *(str + i);   //把每个字符依次赋值
        str_copy[i] = str[i];              //同理
    }
    printf("复制后的字符串:%s\n",str_copy);

    //字符串的复制方法二:
    char str_copy2[15];
    char *x, *y;
    x = str;
    y = str_copy2;
    for(;*x != ‘\0‘; x++,y++)
    {
        *y = *x;
    }
    printf("复制后的字符串2:%s\n",str_copy2);

    //用函数实现复制
    char string[] = "I am the king of the world.";
    char string_copy[30];
    char *p, *q;
    copy(string,string_copy);   //传入数组名

    p = string;
    q = string_copy;
    //copy(p,q);                  //等价于入传入数组名
    printf("%s\n",string);
    printf("%s\n",string_copy);

    return 0;
}

指针引用字符串

原文:https://www.cnblogs.com/hemage/p/13182774.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!