- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计 第10章字符串与其操作
*;内容提要;10.1 引言;用双引号括起来的字符序列,其长度可大于1。如:“How do you do”, “CHINA”, “a”, “$ 123.34” 等
可以使用#define来定义字符串常量
一个字符变量只能存放一个字符。它的定义形式如:char c1,c2;
在内存中字符变量的存储形式是ASCII码
注意区分和
前面章节中已经学习了字符常量、字符变量、字符串常量,到目前为止我们还没有使用过字符串变量
C语言中没有字符串变量,而是以字符数组来表示;10.3 字符数组与字符串 ;字符数组的初始化:;用二维数组存放字符串
char str[ ][10] = { Sunday , Monday , Tuesday , Wednesday ,
Thursday , Friday , Saturday}; ;10.3.2 字符串与指针;
程序说明:char *string=I love Beijing.;
该语句定义并初始化字符指针变量string:用串常量“I love Beijing.”的地址(由系统自动开辟、存储串常量的内存块的首地址)给string赋初值。
该语句也可分成如下所示的两条语句:
char *string;
string=I love Beijing.;
注意:字符指针变量string中,仅存储串常量的地址,而串常量的内容(即字符串本身),是存储在由系统自动开辟的内存块中,并在串尾添加一个结束标志’\0’。;2.整体引用
采取整体引用的办法,改写上例。 【exp10_2】
#include stdio.h
main()
{ char *string=”I love Beijing.”;
printf(“%s\n”,string);
}
程序说明:printf(“%s\n”,string);语句
通过指向字符串的指针变量string,整体引用它所指向的字符串的原理:系统首先输出string指向的第一个字符,然后使string自动加1,使之指向下一个字符;重复上述过程,直至遇到字符串结束标志。;注意:其它类型的数组,是不能用数组名来一次性输出它的全部元素的,只能逐个元素输出。
例如:
int array[10]={……};
......
printf(%d\n,array); /*这种用法非法*/
......
字符指针变量与字符数组之比较
虽然用字符指针变量和字符数组都能实现字符串的存储和处理,但二者是有区别的,不能混为一谈。;字符指针变量与字符数组的主要区别:
(1)存储内容不同:字符指针变量中存储的是字符串的首地址,而字符数组中存储的是字符串本身(数组的每个元素存放一个字符)。
(2)赋值方式不同:对字符指针变量,可采用下面的赋值语句赋值:
char *pointer;
pointer=This is a example.;
而字符数组,虽然可以在定义时初始化,但不能用赋值语句整体赋值。下面的用法是非法的:
char char_array[20];
char_array=This is a example.; /*非法用法*/
(3)指针变量的值是可以改变的,字符指针变量也不例外;而数组名代表数组的起始地址,是一个常量,而常量是不能被改变的。;10.3.2 字符串与指针;1、逐个输入输出
字符数组
for (i=0; i10; i++)
{
Str[i]=getchar();
putchar(Str[i]);
};2、一次性输入输出
scanf( %s ,Str);
printf( %s ,Str);
gets(%s,s);
puts(%s,s);;再谈定义数组长度问题;10.3.4 常用的字符串处理函数;10.3.4 常用的字符串处理函数;10.3.4 常用的字符串处理函数;7.4 字符数组;10.3.4 常用的字符串处理函数;10.3.4 常用的字符串处理函数;可以采用多种形式,如:实参和形参均为数组,均为指针等。但其本质都是一样的。
参考前面章节中所掌握的关于指针的知识,可以加深理解。
与数组名作函数参数一样,字符串作为函数参数时,不是单向值传递,而是把实参数组的起始地址传递给形参数组,这样两个数组共占同一段内存单元,形参的改变会导致实参的改变,这种传递方式叫“地址传送”。 ;用函数调用方式,实现字符串的复制。【exp10_4】
void string_copy(char *str_from, char *str_to)
{ int i=0;
for(; (*(str_to+i)=*(str_fro
您可能关注的文档
- 2014年高考人教版英语总复习3-1Festivals around the world.ppt
- 2014年高考英语总复习考点:Book 6 板块十二 Modules 6 War and Peace(外研版).ppt
- 2014最容易学习 MATLAB.ppt
- 2014年高考英语总复习考点:Book 1 板块二 Modules 4 A Social Survey-My Neighbourhood(外研版).ppt
- 2014年高考英语总复习考点:Book 8 板块十六 Modules 5 The Conquest of the Universe(外研版).ppt
- 2014年高考英语总复习考点:Book 6 板块十二 Modules 5 Cloning(外研版).ppt
- 2014广州中考独立批招生学校与科目 招生人数一览.doc
- 2014年高考英语总复习考点:Book 7 板块十三 Modules 1 Basketball(外研版).ppt
- 2014河南会计继续教育试题与答案.doc
- 2014年高考英语总复习考点:Book 8 板块十六 Modules 6 The Tang Poems(外研版).ppt
- DB4205T 137-2024资丘独活种苗繁育技术规程.pdf
- 《养老机构旅居养老服务规范》.docx
- DB4205T 142-2025天麻生态种植技术规程.pdf
- DB4201T 731-2025货车不停车超限超.pdf
- 《中医护理灸疗技术操作规范 第一部分:督灸》.doc
- DB4212T66-2024稻-克氏原螯虾-蛋鸭生态种养技术规程.pdf
- DB4201T 732-2025草莓种苗立体繁育技术规程.pdf
- DB4212T69-2024地理标志产品 白水畈萝卜轻简化栽培技术规程.pdf
- DB4205T 145-2025屈原故里祭拜屈原活动规程.pdf
- DB4209T 54-2025稻田无沟化虾-稻轮作技术规程.pdf
文档评论(0)