【C语言_19】字符串与指针!

时间:2022-10-10 15:16:48

前言

我们先复习一下字符串的一些相关内容:

#include<stdio.h>
int main()
{
printf("sizeof helloworld=%d",sizeof("helloworld"));
return 0;
}

【C语言_19】字符串与指针!

字符串常量在字节中每个字符的ASCII码按照顺序排列构成,每个字符仅占一个字节,并且末尾会附上一个数值0,指示字符串结尾。

数值0:由转义字符\0表示,数值0对应的ASCII码为0。

字符0:字符0对应的ASCII码为48。


先看一下如何正确定义字符串数组:

//初始化列表长度小于字符数组长度:
char str1[10]={'h','e','l','l','o'};
char str2[10]={'h','e','l','l','o','\0'};
//初始化列表长度等于字符数组长度:
char str3[5]={'h','e','l','l','o'};//(错)无法结尾
char str4[6]={'h','e','l','l','o','\0'};
//使用字符串初始化数组:
char str5[10]="hello";
char str6[6]="hello";
char str7[5]="hello";//(错)无法结尾
//省略字符数组大小:
char str8[]={'h','e','l','l','o','\0'};
char str9[]={'h','e','l','l','o'};//(错)无法结尾
char str10[]="hello";

1.修改字符串

#include<stdio.h>
int main()
{
char str[10]={'h','e','l','l','o'};
printf("%s\n",str);

str[0]='H';
printf("%s",str);
return 0;
}

【C语言_19】字符串与指针!

2.字符数组与指针

#include<stdio.h>
int main()
{
char str[10]={'h','e','l','l','o'};
char* p=str;
while(*p!='\0'){
*p-=32;
p++;
}
printf("%s",str);
return 0;
}

【C语言_19】字符串与指针!

3.使用指针处理字符串

翻转字符串:

#include<stdio.h>
int main()
{
char str[]="dlrowolleh";
puts(str);

char* pHead=str;
char pTail=pHead+9;
while(pHead<=pTail){
char temp=*pHead;
*pHead=*pTail;
*pTail=temp;
pHead++;
pTail--;
}
puts(str);
return 0;
}

【C语言_19】字符串与指针!

4.puts()函数

  • puts()用来向标准输出设备(屏幕)写字符串并换行
  • puts(s)等价于printf("%s\n",s)字符串最后必须是‘\0’结尾
  • puts()函数只能输出字符串,不能输出数值或进行格式变换
  • 可以将字符串直接写入puts()函数中:puts("helloworld")