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语言的小白可能有点难以驾驭,这里就提一句,今后再细细分享)

相关文章
|
1月前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
66 10
|
1月前
|
存储 C语言 开发者
【C语言】格式化输出占位符及其标志字符详解(基于ISO/IEC 9899:2024)
在C语言中,格式化输出通过 `printf` 函数等格式化输出函数来实现。格式说明符(占位符)定义了数据的输出方式,标准ISO/IEC 9899:2024(C23)对这些格式说明符进行了详细规定。本文将详细讲解格式说明符的组成部分,包括标志字符、宽度、精度、长度修饰符和类型字符,并适当增加表格说明。
44 6
|
2月前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
114 4
|
3月前
|
C语言 C++
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
|
3月前
|
C语言
教你快速理解学习C语言的循环与分支
教你快速理解学习C语言的循环与分支
21 0
|
4月前
|
存储 C语言
【C语言基础考研向】10 字符数组初始化及传递和scanf 读取字符串
本文介绍了C语言中字符数组的初始化方法及其在函数间传递的注意事项。字符数组初始化有两种方式:逐个字符赋值或整体初始化字符串。实际工作中常用后者,如`char c[10]=&quot;hello&quot;`。示例代码展示了如何初始化及传递字符数组,并解释了为何未正确添加结束符`\0`会导致乱码。此外,还讨论了`scanf`函数读取字符串时忽略空格和回车的特点。
122 8
|
4月前
|
存储 Serverless C语言
【C语言基础考研向】11 gets函数与puts函数及str系列字符串操作函数
本文介绍了C语言中的`gets`和`puts`函数,`gets`用于从标准输入读取字符串直至换行符,并自动添加字符串结束标志`\0`。`puts`则用于向标准输出打印字符串并自动换行。此外,文章还详细讲解了`str`系列字符串操作函数,包括统计字符串长度的`strlen`、复制字符串的`strcpy`、比较字符串的`strcmp`以及拼接字符串的`strcat`。通过示例代码展示了这些函数的具体应用及注意事项。
265 7
|
4月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
158 4
|
4月前
|
C语言
C语言 字符串操作函数
本文档详细介绍了多个常用的字符串操作函数,包括 `strlen`、`strcpy`、`strncpy`、`strcat`、`strncat`、`strcmp`、`strncpy`、`sprintf`、`itoa`、`strchr`、`strspn`、`strcspn`、`strstr` 和 `strtok`。每个函数均提供了语法说明、参数解释、返回值描述及示例代码。此外,还给出了部分函数的自实现版本,帮助读者深入理解其工作原理。通过这些函数,可以轻松地进行字符串长度计算、复制、连接、比较等操作。
|
5月前
|
C语言
【C语言】字符串及其函数速览
【C语言】字符串及其函数速览
37 4