前言
我们先复习一下字符串的一些相关内容:
#include<stdio.h>
int main()
{
printf("sizeof helloworld=%d",sizeof("helloworld"));
return 0;
}
字符串常量在字节中每个字符的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;
}
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;
}
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;
}
4.puts()函数
- puts()用来向标准输出设备(屏幕)写字符串并换行
- puts(s)等价于printf("%s\n",s)字符串最后必须是‘\0’结尾
- puts()函数只能输出字符串,不能输出数值或进行格式变换
- 可以将字符串直接写入puts()函数中:puts("helloworld")