一、字符串相关函数
1.gets()(输入字符串)
格式:gets(字符串);
(1)区别:gets(str)与scanf(“%s”,str)
gets(str)允许输入的字符串含有空格
scanf(“%s”,str)不允许含有空格
注意:由于以上无法知道字符串大小,很容易导致字符数组越界
2.fgets()(输入字符串)
格式:fgets(char *s, int size, FILE *stream)
s:字符串;
size:指定最大读取字符的长度(size-1)
stream:文件指针,如果读键盘输入的字符串,固定写为stdin
结尾自带"\n".不用担心越界问题
3.puts()(字符串输出)
格式:puts(字符串)
在输出后自动输出一个“\n”
4.fputs()(字符串输出)
格式:fputs(constchar * str, FILE * stream)
s:字符串
stream:文件指针,如果读键盘输入的字符串,固定写为stdin
注意:fputs()是puts()的文件操作版本,但fputs()不会自动输出一个'\n'
5.srelen()(计算指定字符串大小)
格式:strlen(const char *s);
s:字符串首地址
6.strcpy()(把src所指向的字符串复制到dest所指向的空间中,'\0'也会拷贝过去)
格式strcpy(dest, src)
dest:目的字符串首地址
src:源字符首地址
连接后:
注意:如果参数dest所指的内存空间不够大,可能会造成缓冲溢出的错误情况。
7.strncpy()
功能:把src指向字符串的前n个字符复制到dest所指向的空间中,是否拷贝结束符
看指定的长度是否包含'\0'。
格式:strncpy(dest, src, size_t n)
dest:目的字符串首地址
src:源字符首地址
n:指定需要拷贝字符串个数
8.strcat()
功能:将src字符串连接到dest的尾部,‘\0’也会追加过去
格式:strcat(dest, src)
dest:目的字符串首地址
src:源字符首地址
9.strncat()
功能:将src字符串前n个字符连接到dest的尾部,‘\0’也会追加过去
格式:strncat(dest, src, size_t n)
dest:目的字符串首地址
src:源字符首地址
n:指定需要追加字符串个数
10.strcmp()
功能:比较 s1 和 s2 的大小,比较的是字符ASCII码大小
格式:strcmp(s1,s2)
s1:字符串1首地址
s2:字符串2首地址
11.strncmp()
功能:strcmp的追加,比较前n个大小的字符大小,比较的是字符ASCII码大小
格式:strncmp(s1,s2,n)
s1:字符串1首地址
s2:字符串2首地址
n:指定比较字符串的数量
12.sprintf()
功能:格式化数据,然后将结果输出到str指定的空间中,直到出现字符串结束符 '\0' 为止
格式:sprintf(str, format, ...)
str:字符串首地址
format:字符串格式,用法和printf()一样
13.sscanf()
功能:从str指定的字符串读取数据,并根据参数format字符串来转换并格式化数据
格式:sscnf(str, format, ...)
str:指定的字符串首地址
format:字符串格式,用法和scanf()一样
14.strchr()
功能:在字符串s中查找字母c出现的位置
格式:strchr(s, int c)
s:字符串首地址
c:匹配字母(字符)
15.strstr()
功能:查找在字符串riunv中找llunk出现的位置
格式:strstr(riunv,link)
16.strtok()
功能:来将字符串分割成一个个片段。当strtok()在参数s的字符串中发现
参数delim中包含的分割字符时, 则会将该字符改为\0 字符,当连续
出现多个时只替换第一个为\0。
格式:strtok(str, delim)
str:指向欲分割的字符串
delim:为分割字符串中包含的所有字符
注意: 在第一次调用时:strtok()必需给予参数s字符串
往后的调用则将参数s设置成NULL,每次调用成功则返回指向被分割出片段的指针
17.atoi()
功能:atoi()会扫描nptr字符串,跳过前面的空格字符,
直到遇到数字或正负号才开始做转换,而遇到
非数字或字符串结束符('\0')才结束转换,并将结果返回返回值。
格式:atoi(nptr);
nptr:待转换的字符串
拓展(与atoi类似的)
1.atof():把一个小数形式的字符串转化为一个浮点数。
2.atol():将一个字符串转化为long类型