C语言学习(四)

这篇具有很好参考价值的文章主要介绍了C语言学习(四)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

char类型数组

字符串,由一个或多个字符组成的序列就做字符串。双引号不是字符串的一部分,只是告诉双引号里的内容是字符串,C语言中没有专门储存字符串的变量类型,字符串都被存储在char类型的数组中。数组由连续的储存单元组成,可以把数组看作是一行连续的多个存在的存储单元,数组是同类型数据元素的有序序列。数组末尾位置的字符\0,这是空字符,C语言用它标记字符的结束,不是数字0,为非打印字符,其ascii码值为0

I am a I 储存

I

a

m

I

\0

每个单元存储一个字节 标记字符的结束

char a 分1个字节 char a[5] 分5个字节

使用字符串

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define a "aaa"
int main(void) {
    char name[20];
    printf("what's your name?\n");
    scanf("%s",name);
    printf("hello,  %s %s\n",name,a);
    return 0;
}
C语言学习(四)

将scanf换成scanf_s会出现打印不出来

C语言学习(四)

#define用这样一句话定义了一个字符常量,不需要在字符串末尾加上\0,也就是空字符,编译器会默认加上。scanf函数只读取了1 1中的第一个1,在遇到空白(空格,制表符或换行符)就停止读取,%s转换说明是打印字符串的,scanf函数值会读取字符串中的第一个单词,而不是整句话。

strlen()函数

一般而言,C把函数库的相关函数归为一类,并为每类函数提供一个头文件。

strlen函数给出了字符串中的字符长度,sizeof函数是以字节为单位给出对象的大小

string.h头文件包含了多个与字符相关的符号,包括strlen函数,%zd的转换说明用来打印sizeof和strlen。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define a "aaa"

int main(void) {
    char name[40];
    int b;
    printf("what's your name?\n");
    scanf("%s",name);
    printf("%s %s\n",name,a);
    printf("%zd 55 %zd\n", sizeof(name), strlen(name));
    printf("%zd 55 %zd\n", sizeof(a), strlen(a));
    return 0;
}
C语言学习(四)

sizeof和strlen函数输出的结果不一样

对于常量a来说,strlen函数得出的也是字符串中的字符数(包括空格和标点函数),sizeof把末尾的不可见的空字符也计算在内了

sizeof函数可以不用括号,sizeof 22,使用圆括号时取决于运算对象是类型还是特定量(有值或无值的变量)。运算对象时时类型(变量类型,int,float,char)时,圆括号不能少,如sizeof(float);时特定量时,可有可无,一般建议使用圆括号。

printf修饰符

- 左对齐,从左侧开始打印
+ 有符号值,为正加+,为负加-
空格 有符号值为正,加前导空格,为负加前导-
# 把结果转换成另一种形式
0 0代替空格填充字符宽度

转换说明不匹配会造成数据读取出错,参数传递机制,如下

printf("%ld %ld %ld\n",n1,n2,n3)

该调用告诉计算机把变量n1,n2,n3的值传递给程序。这是一种常见的参数传递方式。计算机根据变量类型把这些值放到栈中。程序把传入的值放入被称为栈的内存区域。printf根据转换说明从栈中读取值。当转换说明不匹配时,会造成读取数据不是赋值的值

打印较长的字符串

3种方法 使用多种printf语句

使用\和enter键组合换行

ANSI C 引入的字符串连接

使用scanf()

读取数据时两种情况 ,需要加&(读取变量),不需要加&(字符串数组)

scanf空白字符,使用%s读取一个单词时,无法利用字符宽度读取多个单词,使用字符宽度时,读到字段末尾,或第一个空白字符就停止读取文章来源地址https://www.toymoban.com/news/detail-419335.html

到了这里,关于C语言学习(四)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言——详解字符函数和字符串数组(上)

    目录 一、strlen的使用和模拟实现 1.strlen()函数的介绍 2.strlen()函数的具体使用 3.strlen函数的注意事项 4.strlen函数的模拟实现 二、strcpy的使用和模拟实现 1.strcpy()函数的介绍 2.strcpy()函数的具体使用 3.strcpy()函数的注意事项 4.strcpy函数的模拟实现 三、strcat 的使用和模拟实现  1

    2024年01月16日
    浏览(54)
  • Hive字符串数组json类型取某字段再列转行

    acct content 1232313 [{\\\"name\\\":\\\"张三\\\",\\\"code\\\":\\\"上海浦东新区89492jfkdajrn福建的卡\\\"...},{\\\"name\\\":\\\"狂徒\\\",\\\"code\\\":\\\"select * from table where aa=1rn and a=12\\\"...},{...}] ... ...  上述数据表名code_content,把json中code内容全都取出来拼接成一行数据,最终效果: acct new_content 1232313 上海浦东新区89492jfkdajrn福建的

    2024年02月11日
    浏览(49)
  • C语言字符串初始化详解:用常量字符串进行字符数组初始化

    简介 字符串初始化 用常量字符串 初始化过程 示范代码 结论 在C语言中,字符串被定义为字符数组。字符串的初始化是指将一个常量字符串复制到字符数组中。本文将详细介绍字符串的初始化方法,并提供相应的示范代码。 在C语言中,有几种常用的方法可以用常量字符串来

    2024年02月15日
    浏览(61)
  • C语言基础——数组与字符串

    数组 – 类型 – 构造类型 数组是相同类型数据的集合。 类型 [数组长度];//类型 [] char [] int [] float [] double [] 类型:4大基本类型 – char int float double 数组 指针 结构体 [] – 一定不可以省略 数组长度 – 定义变量时,告诉编译器,该数组要开辟多大空间。 类型 标识符=初始化

    2023年04月12日
    浏览(42)
  • C语言:数组、字符串知识点整理:

    补充 :数组长度= sizeof(arr)/sizeof(arr[0]) 注意: !!! 不适用于当arr 充当形参时(函数传参) !!! 因为函数 传递 的是 int arr[0] 的 地址(指针) ,而 不是数组内容 , 若在此情况计算整形数组长度         在X86系统下,指针大小为 4 ,所以计算结果为4/4=1;       

    2024年03月10日
    浏览(61)
  • 图数据库_Neo4j学习cypher语言_常用函数_关系函数_字符串函数_聚合函数_数据库备份_数据库恢复---Neo4j图数据库工作笔记0008

    然后再来看一些常用函数,和字符串函数,这里举个例子,然后其他的 类似   可以看到substring字符串截取函数   可以看到截取成功   聚合函数   这里用了一个count(n) 统计函数,可以看到效果   关系函数,我们用过就是id(r) 可以取出对应的r的id来这样..

    2024年02月12日
    浏览(60)
  • Java 字符串类型的JSON数组转List<Object>或 List<实体类>

    1.依赖 2.代码 3.JSON数组 [     {         \\\"_object_version\\\": 4,         \\\"updateAuthorizers\\\": [         ],         \\\"RELATED_POOL\\\": \\\"网络云-大区金华可信11\\\",         \\\"CLOUD\\\": \\\"大区网络云\\\",         \\\"modifier\\\": \\\"easyops\\\",           },     {         \\\"_object_version\\\": 4,         \\\"updateAuthorizers\\\": [    

    2024年02月14日
    浏览(58)
  • C语言零碎知识点之字符串数组

    在C语言中字符串数组有两种表示方法: 第一种, 二维字符数组 可以利用二维字符数组来表示字符串,格式是: char strs[row][col]; 。例如: 其中的 row 表示二维数组中的行,表示有几个字符串;而 col 表示二维数组中的列,表示能存放字符串的最大长度。 第二种, 字符指针数

    2024年01月18日
    浏览(50)
  • 用c语言如何用二维数组存入多个字符串

    用 c 语言如何用二维数组存储多个字符串呢? 首先,需要确定要存储的字符串的个数和每个字符串的长度。然后定义一个二维数组,其中第一维表示字符串的个数,第二维表示每个字符串的长度。 例如,假设要存储 3 个字符串,每个字符串的长度都是 10,则可以使用如下代

    2024年02月05日
    浏览(47)
  • go基础09-Go语言的字符串类型

    字符串类型是现代编程语言中最常使用的数据类型之一。在Go语言的先祖之一C语言当中,字符串类型并没有被显式定义,而是以字符串字面值常量或以’\\0’结尾的字符类型(char)数组来呈现的: 这给C程序员在使用字符串时带来一些问题,诸如: ● 类型安全性差; ● 字符

    2024年02月09日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包