C语言-字符串(单个字符)和字符数组
Posted renren-study-notes
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言-字符串(单个字符)和字符数组相关的知识,希望对你有一定的参考价值。
一.字符串(单个字符)和字符数组的定义
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);对单个字符进行输出
X为char类型变量的名字
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语言-字符串(单个字符)和字符数组的主要内容,如果未能解决你的问题,请参考以下文章