C语言——字符串&&格式化输入输出(学习分享)

简介: C语言——字符串&&格式化输入输出(学习分享)

一、字符和字符串


1.1字符(character)


   是数据结构中最小的数据存取单位,通常由8个二进制位(一个字节)来表示一个字符。


可用单引号标识单个字符,例如:


   'a'


1.2字符串(character string)


   是一个or多个字符的序列。可用双引号标识,例如:


   “I'm a student living in Shandong province.”


1.3字符串的使用


   由于C语言没有专门用来存储字符串的变量类型,字符串都被存储在char类型的数组中,也就是说,必须先创建一个数组,把字符串中的字符逐个放入先前创建的数组中,举个栗子:


   char color [20] ;

#include <stdio.h>
int main()
{
    char color[40];
    printf("What's your favorite color? ");
    scanf("%s",color);
    printf("Well,you like %s very much.\n",color);
return 0;
}

   这里的%s 用来告诉printf()要打印一个字符串


输出(output)如下:


What's your favorite color? Dark blue


Well,you like Dark very much.


uu发现了没?scanf()函数只读取了Dark,那blue嘞?没了?这是因为当scanf()遇到第一个空白(space(即 空格)、制表符、换行符)时就不再读取输入,所以在上面这段代码里只读到Dark就停止了。


1.4字符和字符串


   举个栗子,“W” 和 'W'不同,前者属于字符串常量,后者则是字符常量


很重要的一点就是,字符串最后是以“\0”结束,即字符串“W”实际上由两个字符组成:


'W'和空字符\0


二、常量和C预处理器


2.1 常量


   在数学上,像1,5,178这样的数字叫做常数,相似的,在C语言中,值不变的量即为常量。


2.2常量的分类


   C语言的常量可以分为直接常量和符号常量


直接常量:又分为整型常量,实型常量,字符型常量和字符串常量


符号常量:单独属于一类常量,可以用一个标识符来表示符号常量,符号常量在使用前必须先定义,常表示为:#define 标识符 常量值


2.3C预处理器


(截图fromC 预处理器 | 菜鸟教程


三、const限定符


   C90标准新增const关键字。const 用于限定一个变量为“只读”。


   那什么是“只读”呢?从字面理解即为“只能读”,在这里意思是,这个变量被const修饰后,(这个变量)只能(被)读取,不能修改也不能储存。


注意!被const修饰的变量依然还是变量,而不是常量


PS:《C Primer Plus》中提到,“const用起来比#define 更灵活”(具体怎么个“灵活”法,等以后深入理解了再做分享~)


四、粗略认识printf( )和scanf( )


它俩是输出(output)/输入(input)函数,或简称I/O函数


4.1初识printf()


   printf()函数的“()”里加双引号,在双引号里输入文字就可以打印出一模一样的文字,别忘了“()”最后加分号“;”


   刚开始学习c语言的萌新(比如我hhhh)一开始肯定见到过类似这样的代码↓


#include <stdio.h> 
int main()
{
    int num = 8;
    printf("%d\n",num);
    return 0;
}

然后开始疑惑为什么printf() 里要写“%d”


萌新看过几个代码后不难发现,打印整数时用%d,打印字符时用%c,这又是为什么?


答曰:王八的屁股——龟腚


   %d,%c,%s······这些符号被称为“转换说明”,它们指定了如何把数据转换成可显示的形式。下面列出ANSI C标准提供的转换说明(作为初学者,这里暂且列出小白常见的几种)

转换说明

输出

%c

单个字符

%d

有符号的十进制整数

%f

float类型的浮点数

%lf

double类型的浮点数

%p

指针

%u

无符号的十进制整数

%%

打印一个“%”

4.2初识scanf()


   scanf()函数可以读取不同格式的数据


(对于像我一样初学C语言的小白可能有点难以驾驭,这里就提一句,今后再细细分享)

相关文章
|
15天前
|
NoSQL 程序员 Redis
C语言字符串的设计缺陷
C语言字符串的设计缺陷
21 1
|
28天前
|
存储 C语言
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
C语言学习记录——动态内存函数介绍(malloc、free、calloc、realloc)
24 1
|
9天前
|
C语言
C语言学习笔记之初识字符串
C语言学习笔记之初识字符串
20 5
|
9天前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
8 1
|
9天前
|
存储 编译器 C语言
c语言学习历程【1】
c语言学习历程【1】
11 1
|
10天前
|
存储 程序员 Go
|
28天前
|
C语言
C语言学习记录——通讯录(静态内存)
C语言学习记录——通讯录(静态内存)
16 2
|
28天前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
18 1
|
28天前
|
C语言
C语言学习记录——动态内存开辟常见的错误
C语言学习记录——动态内存开辟常见的错误
14 1
|
7天前
|
安全 C语言 开发者
C语言中的字符串
C语言中的字符串
9 0