首页 > 其他分享 >字符串初认识

字符串初认识

时间:2023-02-12 17:22:23浏览次数:51  
标签:heart head love 认识 char 字符串 指针

字符串初学习

一:字符串

#include<stdio.h>
int main(void)
{
printf("\"Run, spot ,run\" exclaimed dick.\n");//如果要在字符串内部使用双引号,必须在双引号前加上一个反斜杠(\)
printf("%s , %p , %c\n","we" , "are" , *"space farers");
//  根据%s转换说明打印字符串,根据%p转换说明打印一个地址(打印的该字符串的首字符的地址)
//*"space farers" 表示该字符串所指向地址上所储存的值,打印的是字符串的首字符
return 0; 

}

  1. 构造一个字符串->用数组

  2. 处理一个字符串->用指针

  3. %s是字符串的转换说明

    //   1. char a[][10] -->表示 a[0]-->相当于 char[10] 
    //   2. char *a[]-->表示a[0]-->相当于char* a (指针数组) 

    可以把1想象成矩形二维数组,每行的长度都是10; 把2想象成不规则的数组,每行的长度不同

    二:数组与指针的区别

    #include<stdio.h>
    int main(void)
    {
        char heart[] ="I love Tillie";
        const char*head ="I love Millie";
        int i;
        for(i=0;i<6;i++){
            putchar(heart[i]);
        }putchar('\n');
        for(i=0;i<6;i++){
            putchar(head[i]);
        }putchar('\n');
    }

    运行结果:

    I love
    I love

     

    主要区别:数组名heart是常量,而指针名head是变量。

    1. 两者都能进行指针加法操作:

        for(i=0;i<6;i++){
            putchar(*(heart+i));
        }putchar('\n');
        for(i=0;i<6;i++){
            putchar(*(head+i));
        }putchar('\n');

    运行结果:

    I love
    I love
    1. 但只有指针表示法能够进行递增操作:

        while(*(head) !='\0'){//在字符串末尾处停止
            putchar(*(head++));//打印字符串,指针指向下一个位置
        }

    运行结果:

    I love Millie
    1. 想让head 和heart统一,可以这样做:

        head=heart;//head现在指向数组heart

    这使得head指针指向heart数组的首元素

    但是不能做

        heart=head;

    复制运算符的左侧必须是变量

    1. 还能改变heart数组中的元素信息:

        heart[7]='M';//或者*(heart+7)='M' 

     

  4.  

标签:heart,head,love,认识,char,字符串,指针
From: https://www.cnblogs.com/ninnne/p/17114179.html

相关文章