重温C语言 | 字符/字符串操作函数

字符/字符串输入输出函数

输入输出一个字符

格式化输入输出函数 scanf() printf函数 %c
getchar() putchar() 函数

输入输出一个字符串

格式化输入输出函数 scanf() printf函数 %s
scanf函数输入一个字符串的时候,只能输入一个单词,一旦输入空格,或者tab键则停止获取,会在键入回车键之前系统会自动加’\0’
printf函数输出一个字符串,遇到’\0’结束输出,输出字符串的时候不能自动换行,需要手动换行,需要添加换行符’\n’

字符串的输入函数

gets函数
1)函数功能:终端输入一个字符串,
2)函数原型:gets(char *str);
gets(数组名)
3)执行原理:可以识别空格键或者tab键等,连同空格键等一起存储在内存中,并在键入回车键之前系统会自动加’\0’,可以输入多个单词的字符串
4)说明:不会检测输入的字符串的个数是否已经超过数组的空间大小,需要程序员在用gets函数的额时候,自己人为注意

安全使用的字符串输入函数:fgets函数

1)函数名: fgets
2)功 能: 从流中读取一字符串
3)用 法: char *fgets(char *string, int n, FILE *stream);
4)说 明:表示从输入流中获取n个字符,存储在以string作为首地址的一块连续的空间,系统会自动添加’\0’
FILE *stream : 文件的输入流—>文件到内存---->文件操作
标准的输入流—>键盘到内存,stdin 标准输入 stdout 标准输出

字符串的输出函数

puts函数
1)函数功能:终端输出一个字符串,
2)函数原型:puts(char *str);
puts(数组名)
3)执行原理:只会输出一个字符串,一旦遇到’\0’.则结束输出
4)说明:输出一个字符串会自动换行,不需要程序员手动换行

栗子:

int main()
{
	char str[10];
	//gets(str);
	fgets(str,10,stdin);  //'\0'占一个位置
	printf("%s\n",str);
	puts(str);
	puts("hellp world");
}

字符串的操作函数----->#include <string.h>

1. strlen函数

1)函数功能:求字符串的长度,字符串中字符的个数
2)函数原型:int strlen(const char * str);
3)函数返回值:字符串的字符个数
4)函数原理:以str为首地址开始依次计算字符串中字符的个数直到遇到’\0’结束计算,计算字符串的长度不包括’\0’

sizeof()关键字/运算符

1)功能:求数据所占的空间大小
2)返回值:数据所占空间大小的字节
3)用法:int sizeof(数据类型/变量)

char str[] = “hello world”
int n;
n = sizeof(str);  //n =12   求字符串所占的空间大小,会计算’\0’,’\0’是一个字符要占一个字节
n = strlen(str);  //n = 11   求字符串的长度,字符个数,不会计算’\0’
char str[30] = "hello world";
n = sizeof(str); // n = 30, 数组的长度已经在定义的时候确定

  1. strcpy函数
    1)函数功能:字符串复制函数
    2)函数原型:char * strcpy(char * to, const char *form)
    3)函数说明:表示将from所指的字符串连同该字符的’\0’一起复制到to所指的内存空间
    4)函数返回值:返回的是to的地址
    5)函数注意:在进行操作的时候要保证to的空间足够大

  2. strcat函数
    1)函数功能:字符串链接函数
    2)函数原型:char *strcat(char *str, const char *buf);
    3)执行原理:将buf里面的内容连同其’\0’一起链接到str所指的空间,并覆盖str中的’\0’
    4)返回值:返回的是str的地址
    5)注意:要保证str的空间足够大

  3. strcmp函数
    1)函数功能:字符串比较函数
    2)函数原型:int strcmp(const char * str,const char *buf);
    3)执行原理:字符串进行比较的时候,实际上是比较对应位置的字符的ASCII码值,如果字符相等,则继续往下比较,直到字符不相等的时候,比较其ASCII码值的大小,返回相应的数值,或者遇到’\0’则结束比较
    “abfd”
    “abfgd”
    4) 返回值为0,表示两个字符串相等
    返回值为1,表示str字符串大于buf字符串
    返回值为-1,表示str字符串小于buf字符串

写一个函数,求字符串的长度,strlen

int str_len(const char * str)
{
int i;

while(str[i] != ‘\0’)
{
  i++;
}
return i;
}

发布了65 篇原创文章 · 获赞 36 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_40860986/article/details/95679582
今日推荐