嵌入式-语言基础:字符串擦操作
字符串:可以理解为是由一串字符组成的数组。
定义一个字符串: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
一般我们不通过遍历的方式来打印字符串。
4556