gets 函数与 puts 函数
gets 函数类似于 scanf 函数,用于读取标准输入。scanf 函数在读取字符串时遇到空格就认为读取结束。 gets 函数的格式如下:
char *gets(char *str);
gets 函数从 STDIN(标准输入)读取字符并把它们加载到 str(字符串)中,直到遇到换行符(\n)。 gets 遇到\n 后,不会存储\n,而是将其翻译为空字符'\0'。 puts 函数类似于 printf 函数,用于输出标准输出。puts 函数的格式如下:
int puts(char *str);
函数 puts 把 str(字符串)写入 STDOU(标准输出)。puts 会将数组中存储的字符串打印到屏幕上,同时打印换行,相对于 printf 函数,puts 只能用于输出字符串,同时多打印一个换行符,等价于 printf(“%s\n”,c)
#include <stdio.h>
#include <string.h>
void gets_puts();
int main()
{
gets_puts();
return 0;
}
void gets_puts()
{
char a[20];
// gets读取字符并把它们加载到 str(字符串)中,直到遇到换行符(\n)结束
// gets 遇到\n 后,不会存储\n,而是将其翻译为空字符'\0'
gets(a);
// puts 把 str(字符串)写入 STDOU(标准输出)。
// puts 只能用于输出字符串,同时多打印一个换行符,等价于 printf(“%s\n”,c)
puts(a);
}
str 系列字符串操作函数
str 系列字符串操作函数主要包括 strlen、strcpy、strcmp、strcat 等。strlen 函数用于统计字符串长度,strcpy 函数用于将某个字符串复制到字符数组中,strcmp 函数用于比较两个字符串的大小,strcat 函数用于将两个字符串连接到一起。各个函数的具体格式如下所示:
#include <string.h>
size_t strlen(char *str);
char *strcpy(char *to, const char *from);
int strcmp(const char *str1, const char *str2);
char *strcat(char *str1, const char *str2);
对于传参类型 char*,直接放入字符数组的数组名即可。
#include <stdio.h>
#include <string.h>
int mystrlen(char a[]);
void strlearn();
int main()
{
strlearn();
return 0;
}
// strlen 函数用于统计字符串长度
// strcpy 函数用于将某个字符串复制到字符数组中
// strcmp 函数用于比较两个字符串的大小,逐个字符比较
// strcat 函数用于将两个字符串连接到一起
void strlearn()
{
int len;
char c[20];
char d[100] = "world";
gets(c);
puts(c);
len = strlen(c); // 统计字符串的长度
printf("strlen=%d\n", len);
len = mystrlen(c);
printf("mystrlen=%d\n", len);
strcat(c, d); // 把d中的字符串拼接到c中
puts(c);
puts(d);
strcpy(d, c); // 把c中的字符串复制到d中
puts(c);
puts(d);
// c大于d,返回值是正值,相等是0,c小于d,返回负值
printf("c?d%d\n", strcmp(c, d));
}
int mystrlen(char a[])
{
int i = 0;
while (a[i++])
;
return i - 1;
}