`
1140566087
  • 浏览: 565686 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18836
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:316799
Group-logo
J2ME 基础学习课程集
浏览量:19195
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17783
社区版块
存档分类
最新评论

C 语言初级入门--字符串

阅读更多


| 第十章    字符串|
||
|  字符串的存储完全依赖于字符数组,但字符数组又不等于字符串变量;|
||
| 1、用一维字符数组存放字符串|
| |
| C 语言对字符串的约定:|
| 字符串是借助于字符型一维数组存放的,并规定以字符‘\0’作为字符串的结束标志|
| ;'\0' 作为标志占用存储空间,但不计入串的实际长度;|
||
| |
| C 语言中表示字符串常量的约定:|
| 虽然C语言中没有字符数据类型,但却允许是字符串常量,由双引号括起来的一串字符;|
||
| C 语言中字符串常量给出的是地址值:|
| 每个字符串在内存中占用一串连续的存储空间,这些连续的存储空间实际上就是|
| 字符型一维数组。不同的字符串在内存中占有不同的存储空间;也就是说,在|
| C语言中,字符串常量被隐含处理成一个以'\0' 结尾的无名字符型一维数组;|
||
| 例如:char *sp; sp = "hellow";|
| 说明:这个语句并不是把字符串的内容放到了sp中,而只是把字符串中的内存|
| 中所占的首地址赋予了char类型的指针变量sp,使指针变量sp指向该字符串;|
||
| 2、字符数组与字符串的区别:|
| 字符数组的每一个元素可存放一个字符,但它并不限定最后一个字符应该是什么,|
| 而字符串则要求最后一个必须是'\0'作为结束标示。在字符数组中可以存放|
| 字符串,但不能通过赋值语句将字符串常量或其它字符数组中的字符串直接赋给|
| 字符串数组变量;|
||
| 3、通过赋初值的方式给一维字符数组赋初值:char str[10] = {'2','3','A'};|
||
| 4、在赋值时直接赋字符串常量|
| char str[10] ={"string"};  //习惯上省略{}|
| char str[10]="string!";(这种方式会自动给字符串的末尾添加结束标识,|
| 但需要注意的是字符串数组的长度一定要比赋值的长度多一个)|
||
| (数组名是一个地址常量,地址常量时不能被改变的)|
||
| 5、给数组元素逐个赋字符值,最后加入串结束标志;|
||
| 6、使指针指向一个字符串:|
| 6.1、通过赋值的方式使指针指向一个字符串|
| char *psl = "form one"; (后面的这个字符串代表的是一个地址,首地址)|
| 意思:把存放字符串的无名存储区首地址赋给指针变量psl,(不要误以为是将字符串|
| 赋给了psl)|
||
| 6.2、通过赋值运算使指针指向一个字符串:|
| char *psl;|
| psl="form one";|
||
| 6.3、用字符数组作为字符串和用指针指向的字符串之间的区别:|
| char mak[] = "program";|
| char *pmark = "program";|
| 区别:|
| mak 代表的是一个固定的存储空间,但指针变量pmark中的地址可以改变而|
| 指向另外一个长度不同的字符串,一旦pmark指向新的字符串而没有另一个指针|
| 指向原来的字符串,则此字符串将会“丢失”,其所占的存储空间也将无法引用;|
||
| 7、字符串的输入和输出:|
| 7.1、输入和输出字符串时的必要条件|
| 当对字符串进行办出时,输出项可以是字符串常量或字符数组名,也可以是|
| 已经指向字符串的字符指针变量;|
| 当对字符串进行输入时,输入项可以是字符数组名,也可以是字符指针变量;|
||
| 7.2、用格式说明%s进行整串输入和输出|
| 7.2.1、scanf();函数|
| scanf("%s",str_adr);|
| 这里的str_adr 是地址值,它可以是字符数组名,字符数组元素的地址或|
| 字符指针变量。|
||
| 注:用%s 格式符输入字符串时,空格和回车符都作为输入数据的分隔符而不能被读入;|
| 若输入字符串的长度超过数组所能容纳的字符个数时,系统并不报错;|
| 当输入项是数组元素的地址时,输入字符将从这一元素开始依次存放在该数组中|
| 当输入项是字符指针变量时,该指针变量必须已指向确定的有足够空间的连续存储单元;|
||
| 7.2.2、print();函数中使用格式说明%s 可以实现字符串的整体输出;|
| printf("%s",str_adr);|
||
| 7.2.3、调用gets();puts();函数在终端输入或输出一行字符串|
||
| 8、字符串数组|
| :字符串数组就是数组中每个元素都是一个存放字符串的一维数组;|
||
| 8.1、字符串数组可以在定义的时候同时赋初值|
| char ch[]3[5] = {"aaa","bb","ccc"}; =={{},{},{}}|
| 或者写成:char ch[][5] = .......|
||
| 8.2、可以定义字符型数组并通过赋初值来构成一个类似的字符串数组|
| char *pa[3] = {"a","bb","ccc"};|
| 说明:指针数组pa的每个元素指向一个字符串,也就是说,数组pa的每个元素中存放着一个|
| 字符串的首地址;|
| |
| 9、用于字符串处理的函数:|
| 9.1、字符串复制函数strcpy(s1,s2);|
| 将s2的值复制到s1所指向的空间,返回s1的值,即目的的首地址;注意:为保证|
| 复制的合法性,s1必须指向向下足够 容纳s2串的存储空间;|
||
| 9.2、字符串连接函数strcat(s1,s2);|
| 该函数将s2 所指字符串的内容连接到s1所指向的字符串后面,并自动覆盖s1串末尾的|
| \0,注意:s1所指的字符串应有足够的空间容纳两种合并后的内容;|
||
| 9.3、求字符串的长度:strlen(s);|
| 求字符串s的长度,这个长度不包括串尾的结束标志0;|
||
| 9.4、字符串比较函数:strcmp(s1,s2);|
| s1>s2 === >0|
| s1==s2==== =0;|
| s1<s2==== <0|
| |
|   案例:编写函数slength(char *s),函数返回指针s所指向字符串的长度,即|
|   相当于库函数strlen的功能;|
|   要求:形参s是指向字符串首地址的指针,计算字符串的长度,只需逐个统计串中字符个数|
|   指导遇到串结束标志\0为止|
||
|
|

#include<stdio.h>
int slength(char *s)
{
	int n=0;
	while(*(s+n)!='\0')
	{
		n++;
		return (n);
	}
}
main()
{

	char str[]="ABCDEF";
	int len1,len2;
	len1=slength(" ");len2=slength(str);
	printf("len1=%d",len1)

	/*
	char str[10]; int i;
	for(i =0;i<9;i++)
	{
		scanf("%c",&str[i]);  //输入值
	}
	str[i]='\0';
	*/
}

0
6
分享到:
评论

相关推荐

    C_C++语言初级入门笔记

    C 语言初级 函数与指针 以及结构体的介绍 C 语言初级 位运算 C 语言初级 文件操作 C 语言初级入门--地址和指针 C 语言初级入门--二维数组和指针 C 语言初级入门--概念简介 ...C 语言初级入门--字符串

    小白学习计划:从初级到初级的C语言.-The-path-to-language-learning.zip

    掌握基本的控制结构后,学习者可以进一步学习数组和字符串处理,这涉及到如何存储和操作多个数据项。 随着学习的深入,函数的使用成为下一个重点。函数是C语言中实现模块化编程的重要工具,通过定义和调用函数,...

    VFP简单初级入门教程_超好

    ### VFP简单初级入门教程知识点总结 #### 一、Visual FoxPro简介 **1.1 Visual FoxPro定义** - **关系型数据库管理系统**: Visual FoxPro(简称VFP)是一款功能强大的关系型数据库管理系统(RDBMS)。它可以用来...

    R语言与机器学习、R语言的初级入门教程

    首先,让我们从R语言的初级入门开始。在R语言中,数据的输入和赋值是学习的基础。你可以使用`&lt;-`或`=`符号来为变量赋值,例如: ```r x &lt;- 10 y = "Hello, R!" ``` 这里的`x`被赋值为整数10,`y`被赋值为字符串。R也...

    C语言:初级和高级笔记(窗帘APP)_C-.zip

    在C语言的学习中,初级部分通常包括数据类型、变量、运算符、控制结构、函数以及数组和字符串等基础知识。而高级部分则可能包括指针、内存管理、结构体、共用体、文件操作、预处理器指令、库的使用和创建等更复杂的...

    C语言习题与解析:素数判定与字符串反转

    内容概要:本文档提供了两道C语言习题及其详细解答回顾——素数检测与字符串反转方法的实现细节。不仅覆盖了解决特定问题的基本思路,同时介绍了有效的算法优化途径。具体习题内容有素数判断逻辑解释、高效求解素数...

    C语言初级课件

    字符串在C语言中被视为字符数组,通常以空字符'\0'作为结束标志。字符串处理函数,如strlen()计算字符串长度,strcpy()和strcat()用于复制和连接字符串。 五、结构体与联合体 结构体是将不同类型的数据组合在一起...

    C语言课程初级代码解答_CP_Project_Cder.zip

    本压缩包中提到的“C_Project_Coder-main”和“C 语言课程入门代码答案_C_Project_Coder”文件,很可能包含了多个C语言的示例代码或者练习题答案。这些代码能够帮助初学者快速上手,理解C语言的编程范式和编程风格。...

    C语言初级练习_C_comming.zip

    在这个名为“C语言初级练习_C_comming.zip”的压缩文件中,我们可以推断其内容主要围绕C语言的基础知识和入门练习。这些练习可能包括对变量、数据类型、运算符、控制结构、函数、指针和数组等基础概念的理解和应用。...

    json初级入门资料

    它采用完全独立于语言的文本格式,但也使用了类似于C家族语言的习惯,包括C、C++、C#、Java、JavaScript、Perl、Python等。这使得JSON成为理想的选择用于数据交换,因为它易于人阅读和编写,同时也易于机器解析和...

    C语言初级练习_C_编码.zip

    在文件中的练习题里,学习者将被引导去编写程序来解决实际问题,例如进行数学计算、字符串处理、文件读写等。每个练习题后可能还会附有详细的解释,帮助理解所遇到的编程难题。这些内容不仅仅是对C语言语法的练习,...

    C语言初级小程序(含代码)

    "程序就是C语言的入门示例,展示了如何使用`printf`输出字符串。 2. **变量与数据类型**:C语言有多种数据类型,如整型(int)、浮点型(float)、字符型(char)等,用于存储不同类型的数据。理解变量的声明、初始化和...

    初级C语言课堂笔记和课外练习_ 0925-.zip

    数组和字符串是C语言中用于存储集合数据的重要工具。数组允许我们存储多个同一类型的值,而字符串则是字符数组的一个特例。在这些课外练习中,学习者将学会如何声明、初始化数组和字符串,并学习如何对它们进行操作...

    C语言从初级到精通(彭戈带你从初级到熟练C语言,谭浩强C语言教程C语言编程).zip

    数组为存储和操作一组相同类型数据提供了便利,而字符串在C语言中实际上是以字符数组的形式表示的。掌握数组和字符串的操作,对于处理文本数据和执行算法任务是不可或缺的。 当学习者对C语言有了较为全面的认识后,...

    最新版go语言入门详细资料,包含初级、中级、高级阶段资料.zip

    2. **基础知识部分**:这部分通常涵盖Go语言的基础语法,如变量、常量、数据类型(包括整型、浮点型、字符串、布尔型等)、流程控制(if、for、switch)、函数定义和调用,以及结构体和接口等面向对象概念。...

    c语言学习软件,初级必备

    "C语言学习软件,初级必备"是一款专为初学者设计的学习工具,旨在帮助新手快速入门C语言编程。 该软件可能包含以下几个核心知识点: 1. **C语言基础**:包括数据类型(如int, char, float, double等)、变量声明、...

    零基础入门学习Python-价值200的鱼C论坛教程

    掌握基本数据类型(整型、浮点型、字符串、布尔值等)以及复合数据类型(列表、元组、字典、集合)。 - **流程控制**:学会使用条件语句(if-else)、循环语句(for、while)来实现程序逻辑控制。 - **函数定义与...

    c语言学习资料-适合开始学习的人

    6. **字符串处理**:了解如何使用字符数组和库函数(如`strlen`, `strcpy`, `strcat`等)处理字符串。 7. **结构体与联合**:学习如何定义和使用复合数据类型,理解结构体和联合的区别。 8. **文件操作**:学习如何...

    c语言初学者入门讲座

    面向对象编程和可视化集成开发工具的发展,使很多曾经非常流行的编程语言影响下降甚至逐步消失,但有一种语言是例外,它就是C语言,时光流逝丝毫没减低C的魅力,它的风采依然如旧。  C语言已经深深的进入各种操作...

    c语言经典例子 编程入门

    以下是一些C语言的经典实例,旨在帮助初级用户快速入门: 1. **算术计算竖式程序**: 这个例子涉及字符串处理、字符数组和循环控制。通过编程实现将给定的算术竖式(如A B C D E + D F G ─────── X Y Z D E...

Global site tag (gtag.js) - Google Analytics