① puts()函数
字符串的输出函数
函数原型:int puts( char *str );
函数的功能:函数puts()把str(字符串)写到STDOUT(标准输出)上.
标准输入:键盘输入数据
标准输出:将内存的数据输出屏幕显示终端
函数的返回值:puts() 成功时返回非负值, 失败时返回EOF(-1).
函数说明:一次只能输出一个字符串,遇到’\0’结束输出
输出字符串的时候会自动换行
printf函数不会自动换行,需要加’\n’
#include
#include
int main()
{
int a[30] = {0};
while(1)
{
scanf("%s",a);
puts(a);
}
return 0;
}
② gets()函数
函数原型:char *gets( char *str );
函数功能:gets()函数从STDIN(标准输入)读取字符并把它们加载到str(字符串)里,直到遇到新行(\n)
函数返回值:成功输入则返回str的地址,如果出错,返回NULL。
函数说明:
使用gets函数,需要人为注意输入的内容不要超过str的空间大小
gets函数可以识别空格,遇到空格则将空格一起保存在str里面
scanf函数遇到空格则停止输入
//注意:gets函数因为安全性不够好,所以不建议使用
#include
#include
int main()
{
int a[30] = {0};
printf("input number is :");
gets(a);
printf("the number is :");
puts(a);
return 0;
}
③ fgets() 函数
函数原型:char *fgets( char *str, int num, FILE *stream );
函数功能:fgets()函数从文件流读取字符并把它们加载到str(字符串)里,最多读取num-1字符
当输入的字符的个数如果超过num个字符,则str里面最多存储num-1个字符
当输入的字符没有超过num个字符,键入回车键,则将字符自动保存在str里面
函数返回值:成功输入则返回str的地址,如果出错,返回NULL。
fgets函数需要手动换行(安全系数比gets()函数要高)
#include
#include
int main()
{
int a[10] = {0};
printf("input number is :");
fgets(a,10,stdin);
printf("the number is :");
puts(a);
return 0;
}
① strlen()函数
函数原型:size_t strlen(const char *str);
函数功能:求str字符串的长度,字符串的个数,不包括’\0’
函数返回值:str字符串的个数
#include
#include
int main()
{
int ch;
int a[30] = {0};
printf("input number is :");
fgets(a,30,stdin); //fgets函数是加上\0(空格)字符
printf("the number is :");
puts(a);
ch = strlen(a);
printf("\n fgets() the size is %d :",ch);
printf("\n");
scanf("%s",a); //scanf函数是遇到\0(空格)字符就结束,所以没有保存下来
ch = strlen(a);
printf("\n scanf() the size is %d :",ch);
return 0;
}
② sizeof() 函数
求数据所占的空间大小
如果求字符串的空间大小则包含’\0’;
本质:运算符/关键字
③ strcpy() 函数
函数原型:char *strcpy(char *str1,const char *str2);
函数功能:字符串复制函数,表示将str2字符串复制到str1的内存空间,并且连同str2字符串的’\0’一起复制过去
函数返回值:返回str1的地址,出错返回NULL;
函数注意:保证str1的空间足够大
#include
#include
int main()
{
int ch;
int str1[30] = {0};
int str2[30] = {0};
printf("please input str1[] character:");
fgets(str1,30,stdin);
printf("\nplease input str2[] character:");
fgets(str2,30,stdin);
strcpy(str1,str2);
printf("the copied str1 is :");
puts(str1);
return 0;
}
③ strcat() 函数
函数原型:char *strcat(char *str1,const char *str2);
函数功能:字符串连接函数,表示将str2的内容连同str2字符串的’\0’,一起连接到str1的后面(覆盖str的’\0’)
函数返回值:返回str1的地址
函数注意:保证str1的空间足够大
#include
#include
int main()
{
int ch;
int str1[30] = {0};
int str2[30] = {0};
printf("please input str1[] character:");
scanf("%s",str1); //注意scanf()函数的输入字符遇空间\0会结束,
getchar(); //接收回车字符
//fgets(str1,30,stdin);
printf("\nplease input str2[] character:");
fgets(str2,30,stdin);
// scanf("%s",str2);
strcat(str1,str2);
printf("the copied str1 is :");
puts(str1);
return 0;
}
④ strcmp ()函数
函数原型:int strcmp(const char *str1,const char *str2);
函数功能:字符串比较函数,实际上比较字符ASCII码值
两个字符串对应位置的字符比较ASCII码,如果字符相同则继续往下比较,直到遇到’\0’结束比较,在此过程中,如果str1的字符 > str2 的字符 ,则函数返回值1
如果str1的字符 < str2 的字符 ,则函数返回值-1
如果两个字符串直到遇到’\0’,依然相等则返回0