字符/字符串输入输出函数
输入输出一个字符
格式化输入输出函数 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, 数组的长度已经在定义的时候确定
-
strcpy函数
1)函数功能:字符串复制函数
2)函数原型:char * strcpy(char * to, const char *form)
3)函数说明:表示将from所指的字符串连同该字符的’\0’一起复制到to所指的内存空间
4)函数返回值:返回的是to的地址
5)函数注意:在进行操作的时候要保证to的空间足够大 -
strcat函数
1)函数功能:字符串链接函数
2)函数原型:char *strcat(char *str, const char *buf);
3)执行原理:将buf里面的内容连同其’\0’一起链接到str所指的空间,并覆盖str中的’\0’
4)返回值:返回的是str的地址
5)注意:要保证str的空间足够大 -
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;
}