一. 从用户读取字符串方式:
1.scanf():在遇到字符串中的空格,"tab",回车键时都会认为字符串输入结束了
2.gets():在遇到字符串中的回车键时,才会认为字符串结束了,然后停止获取字符串,自动在字符串末尾添加"\0"字符
字符串结束标志:“\0”,是一个转义字符,经常被称为空值,它的ASCLL码为0.
二.字符串赋值
1.列如:char arr1[9]={"Welcome!"};
char arr2[9];
arr1=arr2;
不能完成赋值,因为arr1和arr2都代指一个地址,而且地址都是常量,常量是无法完成赋值的。使用专门的函数来完成:
头文件<string.h>:char *strcpy(char *dest,char *src), 将从src地址开始的字符串复制到dest地址开始的储存空间
char *strdup(char *s),将从s地址开始的字符串复制到动态申请的储存空间
三.字符串拼接
1.char *p1="super";
char *p2="market";
char *p3=p1+p2;
错误,头文件<string.h>库函数:
char *strcat(char *dest,char *src),将src指向的字符串复制到dest地址开始的字符串的结尾处,
char *strncat(char *dest,char *src,int n),将src指向的字符串的前n个字符,复制到dest地址开始的字符串的结尾处
四.字符串修改
<string.h>:
char *strset(char *s,char c),将s指向的字符串中的所有字符都设置成字符c
char *strnset(char *s,char n,int n),将s指向的字符串中的前n个字符都设置成字符c
五.字符串比较
<string.h>:
int strcmp(char *s1,char *s2),比较s1与s2指向的字符串大小
int stricmp(char *s1,char *s2),比较s1与s2指向的字符串大小,不区分大小写
int strcmp(char *s1,char *s2),比较s1与s2指向的字符串的前n个字符的大小
int stricmp(char *s1,char *s2),比较s1与s2指向的字符串的前n个字符的大小,不区分大小写
一个整形的数,s1<s2时返值<0,s1=s2时返值=0,s1>s2时返值>0,
六.字符串大小写转换
<string.h>:
char *strlwr(char *s),统一指向的字符串中字母字符为小写
char *strupr(char *s),统一指向的字符串中字母字符为大写
七.计算字符串中字符的个数
<string.h>:
int strlen(char *s),统计s指向的字符串中字符的个数
八.倒叙字符串
<string.h>:
char *strrev(char *s)
九.定位字符串中指定字符
char *strchr(char *s,char c).第一次出现位置
char *sstrcchr(char *s,char c),最后一次出现位置
没有找到返回空指针
十.定位字符串中指定的字符串
char *strstr(char *s1,char *s2),第一次出现位置,没有找到返回空指针
十一.字符串的输入输出
puts(s),C语言中的输出函数,其中s为字符串
gets( )函数用于输入字符串
getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)。例如:在输入“12”回车后,“1”首先被读入,“2”和回车还在输入缓冲区里,被后面的getchar()依次读入