字符、字符串:定义、输入输出方法

字符

在计算机中是以整型形式存储的,当需要显示时会根据ASCII表中的对应关系显示出相应的符号或图案

字符的输入

scanf("%c",&ch);

ch = getchar();

字符的输出

printf("%c",ch);

putchar(ch);

是一种数据结构,是由一组类型相同的若干个数据组成,末尾有结束标志

对于这种数据结构的处理都是批量性的,从开头位置一直处理到结束标志为止

字符串

由字符组成的串型结构,结束标志是

字符串的输入

scanf("%s",地址);

缺点:不能输入空格

char *gets(char *s);

功能:输入字符串,并且可以接受空格

返回值:链式调用(把一个函数的执行结果,通过返回值作为另一个函数的参数)

char *fgets(char *s, int size, FILE *stream);

功能:可以设置输入的字符串的长度为size-1,超出部分不会接受,它会为预留位置

s:内存首地址

size:字节数

stream:stdin

注意:如果输入的字符不足size-1,最后的 会被一起接受了

字符串的输出

printf("%s",地址);

int puts(const char *s);

功能:输出一个字符串,会在末尾 自动添加一个

返回值:成功输出的字符个数

字符串的存在形式

字符数组

char str[10] = {a,b,c...};

由char类型组成的数组,要为预留位置,初始化麻烦

使用的是栈内存,数据可以随意修改

字符串字面值

"由双引号包含的若干个字符"

int *p = "12345"

在末尾隐藏一个

字符串字面值是以地址形式存在的,数据存储在代码段中,如果修改就会段错误

注意:它的结束标志是加在末尾的

printf("%d",sizeof("12345"));

注意:字符个数+1 == 6

printf("%d",sizeof(p));

注意:指针的字节数4|8

多个一模一样的字符串字面值在代码段只有一份

常用方式

字符数组[] = "字符串字面值";

会自动给预留位置

赋值完成后字符串会存在两份,一份在代码段,另一份在栈内存(可以修改)

练习2:实现一个函数,判断字符串是否是回文串

"abccba" "abcba"

练习3:实现一个函数,把数字组成的字符串转换成整数

"1234" 1234

练习4:实现一个函数,把一个字符串逆序

"abcd" "dcba"

经验分享 程序员 微信小程序 职场和发展