字符串处理函数

      puts()函数:用来向标准输出设备(屏幕)写字符串并换行, 其调用格式为: puts(s); 其中s为字符串变量(字符串数组名或字符串指针),puts()函数的作用与语printf("%s\n", s)相同,将缓冲区的字符输出到标准输出,遇到空字符截至,并且在末尾添加一个换行符。。

     gets():函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符不属于这个字符串。其调用格式为: gets(s); s为字符串变量(字符串数组名或字符串指针)。gets(s)函数与scanf("%s", &s)相似, 但不完全相同, 使用scanf("%s", &s) 函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束, 空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符串直到回车为止。

     getchar()函数:只能用于单个字符的输入,一次输入一个字符。程序的功能是输入一个字符,显示一个字符,回车换行,再输入并显示一个字符。而运行时字符是连续输入的,运行结果却是正确的,这是因为输入字符后,它们暂存于键盘的缓冲区中,然后由getchar函数从键盘缓冲区中一个一个的取出来,其调用格式为: getchar(c);

    putchar()函数:只能用于单个字符的输出,且一次只能输出一个字符,其调用格式为: putcahr(c);


    scanf所有标量参数的前面必须加一个“&”符号,数组参数前面不需要加,如果数组参数中出现了下标引用,即参数是数组的某个具体的元素。scanf函数使用%s格式码进行输出字符串时,中间不能包含空白。


   为什么下标检查在c是一件很困难的事情。标准并没有提出这个要求,最早的c编译器并没有检查下标,最新的也不会检查。

因为下标引用可以用于任意的指针,而不仅仅是数组名。作用于指针的下标引用的有效性既依赖于该指针当时恰好指向的内容,也依赖于下标的值。C的下标检查所涉及的开销,比我们刚开始想的要多。编译器必须在程序中插入指令,证实下标表达式的结果所引用的元素和指针表达式所指向的元素属于同一个数组。这个比较操作需要程序中所有数组的位置和长度方面的信息,这将占用一些空间。当程序运行时,这些信息必须进行更新,以反映自动和动态分配的数组,这又将占用一定的时间。因此,即使是那些提供了下标检查的编译器通常也会提供一个开关,允许去掉下标检查。


头文件:#include <string.h>

 (1)strcat()用来连接字符串,其原型为:char *strcpy(char *dest,  char *src);把src所指的字符串连接到dest所指的字符串后面。

  说明:使用时,dest所指的字符串数组足够大,sizeof(dest)/sizeof(dest[0])>strlen(dest)+strlen(src);

 (2)strcpy()用来复制字符串,其原型为:char *strcpy(char *dest, const char *src);

  函数说明:strcpy()会将参数src 字符串拷贝至参数dest 所指的地址。
注意:如果参数 dest 所指的内存空间不够大,可能会造成缓冲溢出(bufferOverflow)的错误情况,在编写程序时请特别留意,或者用strncpy()来取代。

  返回值:返回参数dest 的字符串起始地址。


 (3)strncpy()用来复制字符串的前n个字符,其原型为:char * strncpy(char *dest, const char *src, size_t n);
 
  函数说明:dest 为目标字符串指针,src 为源字符串指针。strncpy()会将字符串src前n个字符拷贝到字符串dest。不像strcpy(),strncpy()不会向dest追加结束标记'\0',这就引发了很多不合常理的问题。
注意:src 和 dest 所指的内存区域不能重叠,且 dest 必须有足够的空间放置n个字符。

  返回值:返回字符串dest;

 (4)strlen()是测试字符串长度的函数,其原型为:strlen(数组名)函数的值为字符串内的实际长度,不包括\0;,例如:char str[10] = {"china"},strlen(str) = 5;

 (5)strcmp()函数是用来比较字符串,其函数原型为:strcmp(str1,str2);对两个字符串按照ASCII值的大小从左到右依次比较,直到遇到不同的字符或\0为止,如果字符相同,则相等,如果不同则按照第一个不同的字符的比较结果为准。如果str1 = str2,则返回 0 ;如果 str1>str2则返回一个正整数,否则返回一个负整数。
 
(6)strlwr(字符串)是用来将字符串中大写字母转换为小写字母。同理,strupr(字符串)是将字符串中小写字母转换为大写字母的函数。

(7)strchr函数

函数功能:查找一个字符。在一个字符串中查找一个特定的字符。

函数原型:char *strchr(char const *str,int ch);

函数说明:strchr在字符串str中查找字符ch第一次出现的位置,找到后返回一个指向该位置的指针。如果该字符不存在于字符串中,则返回一个NULL指针。注意:第二个参数是一个整型值,但是,它包含了一个字符串值。

(8)strstr函数

函数功能:在一个字符串中查找一个字串

函数原型:char *strstr(char const *s1,char const *s2);

函数说明:strstr实现在s1中查找整个s2第一次出现的位置,并返回一个指向该位置的指针。如果s2并没有完整的出现在s1的任何地方,函数返回一个NULL指针。如果第二个字符串是一个空字符串,函数返回s1。



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值