【C语言】学习笔记3——字符串

简介: 1. 字符串(charcacter string)是一个或多个字符的序列 2. C语言没有专门用于存储字符串的变量类型。字符串都被存储在char类型的数组种。 3. 数组由连续的存储单元组成,字符串种的字符被存储在相邻的存储单元中, 每个单元存储一个字符。

1. 字符串(charcacter string)是一个或多个字符的序列

2. C语言没有专门用于存储字符串的变量类型。字符串都被存储在char类型的数组种。

3. 数组由连续的存储单元组成,字符串种的字符被存储在相邻的存储单元中, 每个单元存储一个字符。结尾会

                

4. 声明一个char变量和声明一个char数组

                

5. 使用字符串。 下面的示例程序中我们可以看到:

  a. 字符串 "yeyeck" 被存储在一个长度为40的char数组中  char name[40];

  b. sizeof(name) = 40           输出的是声明时char数组的大小。

  c. strlen(name) = 6              输出的时实际上“yeyeck”所占用的大小 

  另外, scanf() 方法只会读取第一个单词。fgets() 用于读取一般的字符串

#include <string.h>             //提供strlen() 函数原型 

#define DENSITY 62.4            // 人体密度 (单位: 磅/立方英尺) 

int main() 
{
    float weight, volume;
    int size, letters;
    char name[40];     //声明一个可容纳40个字符的数组
    
    printf("Hi! What's your first name?\n");
    scanf("%s", name);
    
    printf("%s, what's your weight in pounds?\n", name);
    scanf("%f", &weight);
    
    size = sizeof(name);
    letters = strlen(name);
    volume = weight / DENSITY;
    
    printf("Well, %s, your volume is %2.2f cubic feet.\n", name, volume);
    
    printf("Also, your first name has %d letters,\n", letters);
    
    printf("and we have %d bytes to store it.\n", size);
    
    return 0;
    
} 
/*
output:
    Hi! What's your first name?
    yeyeck
    yeyeck, what's your weight in pounds?
    100
    Well, yeyeck, your volume is 1.60 cubic feet.
    Also, your first name has 6 letters,
    and we have 40 bytes to store it.
*/

 

3. 字符串常量和字符常量的区别。字符串末尾会跟一个空字符\0

                          

 

          

 

4. 常量和预处理器。在程序中经常要使用到常量。比如说圆周率 Π。

  a. 我们可以在程序中声明变量     float pi = 3.14159

  b. 如果我们这样使用,因为 pi 是一个变量,在写代码的过程中如果不注意,可能会修改 pi 的值。 比如不小心写了一行代码 pi=31.456. 这是我们不想要的结果。

  c. 使用C预处理器, 在程序顶部添加一行代码

        #define PI 3.14159

   在编译程序时,程序中所有的 PI 会被替换成3.14159。这一过程被称为 编译时替换

   通用格式为  # define NAME value。

   预处理的过程如下图

  

  d. 使用const限定符(C90)。 const float PI = 3.14159;

   这表明 PI 为一个只读常量。 不允许更改

5. printf 输出格式

 

  

 

 

  

 

  

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

相关文章
|
3月前
|
NoSQL 程序员 Redis
C语言字符串的设计缺陷
C语言字符串的设计缺陷
37 1
|
4天前
|
C语言
C语言 字符串操作函数
本文档详细介绍了多个常用的字符串操作函数,包括 `strlen`、`strcpy`、`strncpy`、`strcat`、`strncat`、`strcmp`、`strncpy`、`sprintf`、`itoa`、`strchr`、`strspn`、`strcspn`、`strstr` 和 `strtok`。每个函数均提供了语法说明、参数解释、返回值描述及示例代码。此外,还给出了部分函数的自实现版本,帮助读者深入理解其工作原理。通过这些函数,可以轻松地进行字符串长度计算、复制、连接、比较等操作。
|
20天前
|
C语言
【C语言】字符串及其函数速览
【C语言】字符串及其函数速览
19 4
|
20天前
|
C语言
【C语言篇】字符和字符串以及内存函数详细介绍与模拟实现(下篇)
perror函数打印完参数部分的字符串后,再打印⼀个冒号和⼀个空格,再打印错误信息。
|
20天前
|
存储 安全 编译器
【C语言篇】字符和字符串以及内存函数的详细介绍与模拟实现(上篇)
当然可以用scanf和printf输入输出,这里在之前【C语言篇】scanf和printf万字超详细介绍(基本加拓展用法)已经讲过了,这里就不再赘述,主要介绍只针对字符的函数.
|
3月前
|
C语言
C语言学习笔记之初识字符串
C语言学习笔记之初识字符串
32 5
|
3月前
|
文件存储 C语言
|
3月前
|
存储 机器学习/深度学习 编译器
C语言代码学习笔记
<编程精粹:编写高质量C语言代码> 读书笔记
|
3月前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
20 1
|
2月前
|
安全 C语言
C语言8 数组与字符串
C语言8 数组与字符串
18 0