C函数、数组、指针和调试器gdb--字符串函数.doc_第1页
C函数、数组、指针和调试器gdb--字符串函数.doc_第2页
C函数、数组、指针和调试器gdb--字符串函数.doc_第3页
C函数、数组、指针和调试器gdb--字符串函数.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C函数、数组、指针和调试器gdb-字符串函数踏破铁鞋无觅处,得来全不费功夫。假作真时真亦假,无为有处有还无。晨兴理荒秽,带月荷锄归。蚍蜉撼大树,可笑不自量。燕山雪花大如席,片片吹落轩辕台。C语言中提供了许多用来处理字符串的函数,使用这些函数可以大大减轻我们的工作量。 一、puts和gets 1、puts函数 该函数将一个以0结尾的字符串输出到屏幕上,例如:char a = Welcome to;char *p = Linux C Program;puts(a);puts(b);将输出:Welcome to Linux C Program 2、gets函数 从终端输入一个字符串到字符数组中,它的返回值是该字符数组的首地址,例如:char string20;gets(string); /从键盘输入computerputs(string);则输出:computer 二、strcpy和strncpy#include char *strcpy(char *dest,char *src);char *strncpy(char *dest,char *src,int n);说明:(1)strcpy是string copy的缩写。使用这两个函数时须包含头文件string.h。这两个函数的返回值都是参数dest。(2)strcpy把src所指向的以n结尾的字符串复制到dest所指的数组中。strncpy把src所指向的以0结尾的字符串的前n个字节复制到dest所指的数组中。(3)dest所指向的数组必须足够大,以便容纳被复制的src所指向的字符串。复制时连同字符串的0一起被复制。(4)以下代码是错误的:char a = Linux C Program,b20;b = a; 不能将一个字符串常量或字符数组直接赋给另一个字符数组。字符串的复制只能使用strcpy、strncpy或者其他类似功能的函数。(5)strcpy是不安全的,存在安全漏洞,容易被黑客所利用。因此一般应该使用strncpy。示例代码:char *s = Hello World;char d120,d220;strcpy(d1,s);strncpy(d2,s,sizeof(s); sizeof(s)获得s所指向的字符串的长度,这里sizeof(s)等于12,因为字符串Hello World最后的0也是一个字符。 三、strcat和strncat#include char *strcat(char *dest,char *src);char *strncat(char *dest,char *src,int n);说明:(1)strcat是string catenate(字符串连接)的缩写。这两个函数所在的头文件都是string.h,都以参数dest的值作为返回值。(2)strcat把src所指向的字符串添加到dest结尾处(覆盖dest结尾处的0)并添加0。strncat把src所指向的字符串的前n个字符添加到dest结尾处(覆盖dest结尾处0)并添加0.(3)dest所指向的数组必须足够大,以便容纳连接后的新字符串。(4)strcat是不安全的,存在安全漏洞,容易被黑客所利用。因此一般应该使用strncat。示例代码:char d20=Hello ;char *s=World;strcat(d,s); 四、strcmp和strncmp#include int strcmp(char *s1,char *s2);int strncmp(char *s1,char *s2,int n);说明:(1)strcmp是string compare(字符串比较)的缩写。这两个函数所丰的头文件都是string.h,其功能是比较两个字符串。(2)strncmp只对两个字符串的前n个字符进行比较。字符串的比较规则是:从左到右逐个字符进行比较,直到出现不同的字符或遇到0为止。如果全部字符都相同且长度一样,则认为两个字符串相等,返回值为0。如果出现不相同的字符,则对第一次出现的两个不相同的字符进行比较。比较方法是以s1的第一个不相同的字符减去s2的第一个不相同的字符,以所得的差值作为返回值,例如: strcmp(aab,aaB),第一次不相同的字符为“b“,和”B“,”b“的ASCII码为98,“B”的ASCII码为66,因此“aab“aaB“,返回值为一正数,通常为1。comparecomputer,因为“a 0) printf(compare computer);else printf(compare computer); 五、strleninclude int strlen(char *s);说明:(1)strlen是string length的缩写。它所在的头文件是string.h,功能是返回字符串的长度。(2)strlen返回的字符串实际长度,不包括0在内,例如:char string10 = China;printf(dn,strlen(string);输出的结果不是字符数组长度10,也不是6,而是5。 六、strlwr和struprinclude char *strlwr(char *s);char *strupr(char *s);说明:(1)strlwr是string lower的缩写,strupr是string upper的缩写。使用它们前必须包含头文件string.h。(2)strlwr将s所指向的字符串中所有的大写字母都转换成小写字母。strupr将s所指向的字符串中所有的小写字母都转换成大写字母。它们的返回值都是转换后的字符串的指针。示例代码:char string10 = China;printf(%sn,strlwr(string);printf(%sn,strupr(string);输出:chinaCHINA 七、strstr和strchr#include char *strstr(char *s1,char *s2);char *strchr(char *s1,char *s2);说明:(1)strstr是string string的缩写,strchr是string char的缩写。使用它们前必须包含头文件string.h。(2)strstr从字符串s1中寻找s2第一次出现的位置,返回指向第一次出现s2位置的指针,如果没找到则返回NULL。strchr查找字符串s中首次出现字符c的位置,返回首次出现字符c的指针,如果s中不存在c则返回NULL。示例代码:char *s1 = Linux C Program,*s2 = nux,*p;p = strstr(s1,s2);if (p != NULL) printf(%sn,p);else printf(Not Found!);p = strchr(s1,C);if (p !=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论