【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 输出格式

 

  

 

 

  

 

  

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

相关文章
|
1月前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
68 10
|
2月前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
121 4
|
3月前
|
C语言
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
100 1
|
3月前
|
C语言 C++
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
|
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语言中的指针知识。
160 4
|
4月前
|
C语言
C语言 字符串操作函数
本文档详细介绍了多个常用的字符串操作函数,包括 `strlen`、`strcpy`、`strncpy`、`strcat`、`strncat`、`strcmp`、`strncpy`、`sprintf`、`itoa`、`strchr`、`strspn`、`strcspn`、`strstr` 和 `strtok`。每个函数均提供了语法说明、参数解释、返回值描述及示例代码。此外,还给出了部分函数的自实现版本,帮助读者深入理解其工作原理。通过这些函数,可以轻松地进行字符串长度计算、复制、连接、比较等操作。
|
5月前
|
C语言
【C语言】字符串及其函数速览
【C语言】字符串及其函数速览
37 4
|
5月前
|
C语言
【C语言篇】字符和字符串以及内存函数详细介绍与模拟实现(下篇)
perror函数打印完参数部分的字符串后,再打印⼀个冒号和⼀个空格,再打印错误信息。
71 0