字符串
C中的字符串是一个以NULL字符'\0'结尾的字符数组。
字符串声明可以通过多种方式进行,每种方式都有其各自的考虑因素。
例如:
char str_name[str_len] = "string";
这将创建一个由str_len个字符组成的名为str_name的字符串,并将其初始化为值“ string”。
提供字符串文字以初始化字符串时,编译器会自动将NULL字符'\0'添加到char数组。
因此,必须声明数组大小至少比预期的字符串长度长一个字符。
下面的语句创建包含NULL字符的字符串。如果声明不包含char数组大小,则将根据初始化中字符串的长度加上'\0'的值来计算:
char str1[6] = "hello";
char str2[ ] = "world"; /* size 6 */
字符串也可以声明为一组字符:
char str3[6] = {'h', 'e', 'l', 'l', 'o', '\0'};
char str4[ ] = {'h', 'e', 'l', 'l', 'o', '\0'}; /* size 6 */
使用这种方法,必须显式添加NULL字符。请注意,这些字符用单引号引起来。
与任何数组一样,字符串的名称充当指针。
字符串文字是用双引号引起来的文本。
诸如 'b' 之类的字符用单引号引起来,不能视为字符串。
字符串指针声明,例如 char *str ="stuff"; 被认为是常量,不能从其初始值更改。
为了安全,方便地使用字符串,可以使用下面显示的“标准库”字符串函数。不要忘记引入<string.h>头文件。
strlen() -获取字符串的长度
strcat()-合并两个字符串
strcpy()-将一个字符串复制到另一个
strlwr()-将字符串转换为小写
trupr()-将字符串转换为大写
strrev()-反向字符串
strcmp()-比较两个字符串
【填空题】将字符串声明为char数组:
str[] = "Hello, world!";
字符串输入
程序通常是交互式的,要求用户输入。
为了从用户那里检索一行文本或其他字符串,C提供了scanf(),gets()和fgets()函数。
你可以使用scanf()根据格式说明符读取输入。
例如:
char first_name[25];
int age;
printf("Enter your first name and age: \n");
scanf("%s %d", first_name, &age);
当使用scanf()读取字符串时,不需要&访问变量地址,因为数组名称充当指针。
scanf()到达空格时停止读取输入。
要读取带空格的字符串,请使用gets()函数。它读取输入,直到到达终止换行符(按Enter键)。
例如:
char full_name[50];
printf("Enter your full name: ");
gets(full_name);
gets()的更安全替代方法是fgets(),它最多读取指定数量的字符。
这种方法有助于防止缓冲区溢出(当字符串数组的大小不足以容纳键入的文本时发生)。
例如:
char full_name[50];
printf("Enter your full name: ");
fgets(full_name, 50, stdin);
fgets() 参数是字符串名称,要读取的字符数以及指向要从中读取字符串的指针。stdin表示从标准输入(即键盘)中读取。
get 和 fgets 之间的另一个区别是换行符由fgets存储。
fgets() 仅从stdin读取n-1个字符,因为必须有用于'\0'的空间。
【选词填空】使用scanf函数从输入中读取字符串
str[20];
scanf("%s", );
char
int
str
字符串输出
字符串输出由fputs(),putf()和printf()函数处理。
fputs 函数
fputs 函数的作用是向指定的文件写入一个字符串,其中字符串可以是字符串常量,也可以是字符组名、指针或变量。
fputs 一般形式如下:
fputs(字符串, 文件指针)
例如:
#include <stdio.h>
int main()
{
char city[40];
printf("Enter your favorite city: ");
gets(city);
// Note: for safety, use
// fgets(city, 40, stdin);
fputs(city, stdout);
printf(" is a fun city.");
return 0;
}
puts() 函数仅接受字符串参数,也可以用于显示输出。
但是,puts() 将在输出中添加换行符。
例如:
#include <stdio.h>
int main()
{
char city[40];
printf("Enter your favorite city: ");
gets(city);
// Note: for safety, use
// fgets(city, 40, stdin);
puts(city);
return 0;
}
【选词填空】声明字符串,并使用fputs()函数将其输出:
name[] = "John Smith";
(, stdout);
puts
char
fputs文章来源:https://www.toymoban.com/news/detail-494016.html
name文章来源地址https://www.toymoban.com/news/detail-494016.html
到了这里,关于【编程语言 · C语言 · 字符串】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!