c语⾔整理字符,C语⾔常⽤字符串操作函数整理(详细全⾯)字符串相关
1.char *gets(char *s);
#include
功能:
从标准输⼊读⼊字符,并保存到s指定的内存空间,直到出现换⾏符或读到⽂件结尾为⽌
参数:
s:字符串⾸地址
返回值:
成功:读⼊的字符串
失败:NULL
gets(str)与scanf(“%s”,str)的区别:
gets(str)允许输⼊的字符串含有空格
scanf(“%s”,str)不允许含有空格
注意:
由于scanf()和gets()⽆法知道字符串s⼤⼩,必须遇到换⾏符或读到⽂件结尾为⽌才接收输⼊,因此容易导致字符数组越界(缓冲区溢出)的情况。
举例:printf("请输⼊str: ");
gets(str);
printf("str = %s\n", str);
2.char *fgets(char *s, intsize, FILE *stream);
#include
功能:
从stream指定的⽂件内读⼊字符,保存到s所指定的内存空间,直到出现换⾏字符、读到⽂件结尾或是已读了size - 1个字符为⽌,最后会⾃动加上字符 '\0' 作为字符串结束
参数:
s:字符串
size:指定最⼤读取字符串的长度(size - 1)
stream:⽂件指针,如果读键盘输⼊的字符串,固定写为stdin
返回值:
成功:成功读取的字符串
读到⽂件尾或出错: NULL
描述:
fgets()在读取⼀个⽤户通过键盘输⼊的字符串的时候,同时把⽤户输⼊的回车也做为字符串的⼀部分。通过scanf和gets输⼊⼀个字符串的时候,不包含结尾的“\n”,但通过fgets结尾多了“\n”。fgets()函
数是安全的,不存在缓冲区溢出的问题。
举例:char str[100];
printf("请输⼊str: ");
fgets(str, sizeof(str), stdin);
printf("str = \"%s\"\n", str);
3.int puts(const char *s);
#include
功能:
标准设备输出s字符串,在输出完成后⾃动输出⼀个'\n'。
参数:
s:字符串⾸地址。
返回值:
成功:⾮负数
失败:-1
举例:#includeint main()
{
printf("hello world");
puts("hello world");
return 0;
}
4.int fputs(const char *str, FILE *stream);
#include
功能:
将str所指定的字符串写⼊到stream指定的⽂件中,字符串结束符'\0'不写⼊⽂件。参数:
str:字符串
stream:⽂件指针,如果把字符串输出到屏幕,固定写为stdout。
返回值:
成功:0
失败:-1
注意:
fputs()是puts()的⽂件操作版本,但fputs() 不会⾃动输出⼀个'\n'。
举例:printf("hello world");
puts("hello world");
fputs("hello world", stdout);
5. size_t strlen(const char *s);
#include
功能:
计算指定指定字符串s的长度,不包含字符串结束符‘\0’.
参数:
s:字符串⾸地址
返回值:
字符串s的长度,size_t 为unsigned int类型
举例:char str[] = "abcdefg";
int n = strlen(str);
printf("n = %d\n", n);
6. char *strcpy(char *dest, const char *src);
#include
功能:
把src所指向的字符串复制到dest所指向的空间中,'\0'也会拷贝过去
参数:
dest:⽬的字符串⾸地址
src:源字符⾸地址
返回值:
成功:返回dest字符串的⾸地址
失败:NULL
注意: 如果参数dest所指的内存空间不够⼤,可能会造成缓冲溢出的错误情况。
举例:char dest[20] = "123456789";
char src[] = "hello world";
strcpy(dest, src);
printf("%s\n", dest);
7. char *strncpy(char *dest, const char *src, size_tn);
#include
功能:
把src指向字符串的前n个字符复制到dest所指向的空间中,是否拷贝结束符看指定的长度是否包含'\0'。参数:
dest:⽬的字符串⾸地址
src:源字符⾸地址
n:指定需要拷贝字符串个数
返回值:
成功:返回dest字符串的⾸地址
失败:NULL
举例:char dest[20] ;
char src[] = "hello world";
strncpy(dest, src, 5);
printf("%s\n", dest);
dest[5] = '\0';
printf("%s\n", dest);
8. char *strcat(char *dest, const char *src);
#include
功能:
将src字符串连接到dest的尾部,‘\0’也会追加过去
参数:
dest:⽬的字符串⾸地址
src:源字符⾸地址
返回值:
成功:成功:返回dest字符串的⾸地址
isalpha 函数
失败:NULL
举例:char str[20] = "123";
char *src = "hello world";
printf("%s\n", strcat(str, src));
9. char *strncat(char *dest, const char *src, size_tn);
#include
功能:
将src字符串前n个字符连接到dest的尾部,‘\0’也会追加过去参数:
dest:⽬的字符串⾸地址
src:源字符⾸地址
n:指定需要追加字符串个数
返回值:
成功:成功:返回dest字符串的⾸地址
失败:NULL
举例:char str[20] = "123";
char *src = "hello world";
printf("%s\n", strncat(str, src, 5));
10. int strcmp(const char *s1, const char *s2); #include
功能:
⽐较 s1 和 s2 的⼤⼩,⽐较的是字符ASCII码⼤⼩。参数:
s1:字符串1⾸地址
s2:字符串2⾸地址
返回值:
相等:0
⼤于:>0
⼩于:<0
举例:char *str1 = "hello world";
char *str2 = "hello mike";
if (strcmp(str1, str2) == 0)
{
printf("str1==str2\n");
}
elseif (strcmp(str1, str2) > 0)
{
printf("str1>str2\n");
}
else
{
printf("str1str2\n");
}
else
{
printf("str1
}
12. int sprintf(char *str , const char *format, ...); #include
功能:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。