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

news/2024/7/7 18:47:56

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?yeyeckyeyeck, what's your weight in pounds?100Well, 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 输出格式

 

  

 

 

  

 

  

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

转载于:https://www.cnblogs.com/yeyeck/p/9497086.html


http://lihuaxi.xjx100.cn/news/237310.html

相关文章

redux rxjs_可观察的RxJS和Redux入门指南

redux rxjsRedux-Observable is an RxJS-based middleware for Redux that allows developers to work with async actions. Its an alternative to redux-thunk and redux-saga.Redux-Observable是Redux的基于RxJS的中间件&#xff0c;允许开发人员使用异步操作。 它是redux-t…

以太坊系统账户

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 在以太坊系统中&#xff0c;状态是由被称为“账户”&#xff08;每个账户由一个20字节的地址&#xff09;的对象和在两个账户之间转移价值和信息的状…

c# 持续集成 单元测试_如何在不进行单元测试的情况下设置持续集成

c# 持续集成 单元测试Do you think continuous integration is not for you because you have no automated tests? Or no unit tests at all? Not true. Tests are important. But there are many more aspects to continuous integration than just testing. Lets see what…

[20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt

[20180317]12c TABLE ACCESS BY INDEX ROWID BATCHED2.txt--//简单探究12c TABLE ACCESS BY INDEX ROWID BATCHED特性.--//当使用12c时,执行计划出现TABLE ACCESS BY INDEX ROWID BATCHED,做一些探究.--//本文主要探究如何使用提示或者隐含参数控制这种特性.1.环境:SCOTTtest01…

解析equals(Object obj)和compareTo(T obj)

背景&#xff1a;最近在研究静态扫描的东西&#xff0c;遇到一个规则&#xff1a;"equals(Object obj)" should be overridden along with the "compareTo(T obj)" method 然后就想深度扒一扒equals和compareTo有什么区别 1.java.lang.Object是所有类的父类…

区块链技术名词简介

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 零知识证明 零知识证明指证明者能在不向验证者提供任何有用的信息下&#xff0c;使验证者相信某个论断是正确的。零知识证明实质是一种涉及两方或更…

RPC-原理及RPC实例分析

还有就是&#xff1a;RPC支持的BIO,NIO的理解 (1)BIO: Blocking IO;同步阻塞&#xff1b; (2)NIO:Non-Blocking IO&#xff0c; 同步非阻塞; 参考&#xff1a;IO多路复用,同步&#xff0c;异步&#xff0c;阻塞和非阻塞 区别 在学校期间大家都写过不少程序&#xff0c;比如写个…

C++基础技术简介

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 容器 容器用于存储数据元素&#xff0c;是由长度可变的同类型的元素构建成的序列。 Vector&#xff1a;用于快速定位任意元素及主要在元素序列的尾…