嵌入式-语言基础:字符串擦操作

字符串:可以理解为是由一串字符组成的数组。

定义一个字符串:char s[]="hello";

复制代码
#include<stdio.h>

int main()
{
    
    char s[]="hello";//这种方式字符串是不能通过指针被修改的,因为“hello”表示的是常量,如果要修改只能通过下标
    char s1[]={'h','e','l','l','o'};//这种方式字符串表示的是数组,是可以修改的
    char *p=s;
    printf("puts打印字符串:\n");
    //打印方式1:
    puts(s);
    //打印方式2:
    printf("%s\n",s);
    printf("打印字符串:\n");
    for(int i=0;i<5;i++)
    {
        printf("%c\n",s[i]);
    }
    printf("通过指针打印字符串:\n");
    for(int i=0;i<5;i++)
    {
        printf("%c\n",*(p+i));
    }
    //修改s
    s[0]='1';
    printf("修改后打印字符串:\n");
    for(int i=0;i<5;i++)
    {
        printf("%c\n",s[i]);
    }
    //修改s1
    s1[0]='2';
    printf("修改后打印字符串:\n");
    for(int i=0;i<5;i++)
    {
        printf("%c\n",s1[i]);
    }
    //通过指针修改字符串常量,不允许
    char *p2="hello";
    *(p2+1)='t';//会错误,你将看不到后面打印的这一行
    printf("done\n");
    return 0;
}
复制代码

输出结果:

puts打印字符串:
hello
hello
打印字符串:
h
e
l
l
o
通过指针打印字符串:
h
e
l
l
o
修改后打印字符串:
1
e
l
l
o
修改后打印字符串:
2
e
l
l
o
done

F:\QUStudy>gcc str.c

F:\QUStudy>a.exe
puts打印字符串:
hello
hello
打印字符串:
h
e
l
l
o
通过指针打印字符串:
h
e
l
l
o
修改后打印字符串:
1
e
l
l
o
修改后打印字符串:
2
e
l
l
o

 一般我们不通过遍历的方式来打印字符串。

 

posted @   WellMandala  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示