码迷,mamicode.com
首页 > 编程语言 > 详细

C语言-字符串(单个字符)和字符数组

时间:2019-10-01 21:01:52      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:scanf   比较   单个字符   输出   family   tac   字符   字符数组   变量   

.字符串(单个字符)和字符数组的定义

1.单个字符的定义

char i = ‘x’ (单个字符的定义)

字符串创建后为常量无法修改

2.字符数组的定义

char i [4]=”xxxx”;

char i []=”xxxx”;

char i [4]={‘x’’x’’x’’x’};

其中定义的数组的元素数要比实际赋值的数量多一,用于存放\0位置

字符数组只有在定义时才能将整个字符串一次性地赋值给它,一旦定义完了,就只能一个字符一个字符地赋值了。

二字符串(单个字符)和字符数组输入

1.scanf函数

给字符串(单个字符)赋值

scanf(“%2s”, &x);(其中x为定义的char类型变量的名字)

给字符数组赋值

scanf(“%2s”, x);(其中x为定义的字符数组名字)

 2.fgets函数

char food[5];

printf("Enter favorite food:");

fgets(food, sizeof(food), stdin);

fegets括号里面内容的意思:food(字符数组的名字)sizeof(food)接收字符的最大长度,stdin数据来自键盘

scanf比较,此函数可以让用户输入含有空格的字符串

三. 字符串(单个字符)和字符数组的输出

1.单个字符的输出

Printf (“%c”,  x);对单个字符进行输出

Xchar类型变量的名字

2.字符数组的输出

Printf(“%s, x;对字符串进行输出

X为字符数组名

四.字符数组与指针之间一些注意事项

第一:

char cards[];
在这个表达式中 cards是一个字符数组,而且必须立刻赋值
#include <stdio.h>

void stack_deck(char cards[])
{

printf("%s\n", cards);

}
int main(void)
{

char cook[]="Hello world!";
stack_deck(cook);
return 0;
}
在这个表达式中cards[]是char类型函数的指针变量,他存放了cook数组的首字节地址。
将函数中的char cards[]更换为指针变量(char * cards)同样有效
 

第二:

char s[] ="xxxx";
char * t = s;

字符数组变量赋值给指针时,指针变量只会包含数组的地址信息,而丢失了数组的长度信息,这个信息的丢失称为指针退化。

 

C语言-字符串(单个字符)和字符数组

标签:scanf   比较   单个字符   输出   family   tac   字符   字符数组   变量   

原文地址:https://www.cnblogs.com/renren-study-notes/p/11615952.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!