函数名: strrchr 
功  能: 在串中查找指定字符的最后一个出现 
用  法: char *strrchr(char *str, char c);

举例:

  1. char fullname="./lib/lib1.so";
  2. char *ptr;
  3. ptr = strrchr(fullname,'/');
  4. printf("filename is %s",++ptr);
  5. //运行结果:filename is lib1.so

函数名: strchr 
功  能: 在串中查找指定字符的第一个出现 
用  法: char *strchr(char *str, char c);

举例:

  1. char fullname="./lib/lib1.so";
  2. char *ptr;
  3. ptr = strrchr(fullname,'.');
  4. printf("after strchr() is %s",++ptr);
  5. //运行结果:after strchr() is  /lib/lib1.so

函数名: strtok 
功  能: 在串中查找指定字符的第一个出现 
用  法: char *strtok(char *s, char *delim);

说明:

1.strtok函数的实质上的处理是,strtok在s中查找包含在delim中的字符并用NULL(’\0′)来替换,直到找遍整个字符串。这句话有两层含义:(1)每次调用strtok函数只能获得一个分割单位。(2)要获得所有的分割单元必须反复调用strtok函数。

2.strtok函数以后的调用时的需用NULL来替换s.

3.形参s(要分割的字符串)对应的变量应用char s[]=”….”形式,而不能用char *s=”….”形式。

举例:

  1. void  main()
  2. {
  3. char buf[]=”Golden Global View”;
  4. char* token = strtok( buf, ” “);
  5. while( token != NULL )
  6. {
  7. printf( ”%s “, token );
  8. token = strtok( NULL, ” “);
  9. }
  10. return 0;
  11. }
  12. /*其结果为:
  13. Golden
  14. Global
  15. View
  16. */

函数名:strncpy

功能:把src所指由NULL结束的字符串的前n个字节复制到dest所指的数组中

用法:char *strncpy(char *dest, char *src, int n);

说明:

如果src的前n个字节不含NULL字符,则结果不会以NULL字符结束。
        如果src的长度小于n个字节,则以NULL填充dest直到复制完n个字节。
        src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
        返回指向dest的指针。

举例:

  1. #include <syslib.h>
  2. #include <string.h>
  3. main()
  4. {
  5. char buf[4];
  6. char *s="abcdefg";
  7. strncpy(buf,s,4);
  8. printf("%s\n",buf);
  9. return 0;
  10. }
  11. /*运行结果:
  12. abcd
  13. */

函数名: stpcpy
功  能: 拷贝一个字符串到另一个
用  法: char *stpcpy(char *destin, char *source);

举例:

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(void)
  4. {
  5. char string[10];
  6. char *str1 = "abcdefghi";
  7. stpcpy(string, str1);
  8. printf("%s\n", string);
  9. return 0;
  10. }
  11. /*运行结果
  12. abcdefghi
  13. */

函数名: strcat
功  能: 字符串拼接函数
用  法: char *strcat(char *destin, char *source);
举例:

  1. #include <string.h>
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5. char destination[25];
  6. char *blank = " ", *c = "C++", *Borland = "Borland";
  7. strcpy(destination, Borland);
  8. strcat(destination, blank);
  9. strcat(destination, c);
  10. printf("%s\n", destination);
  11. return 0;
  12. }
  13. /*运行结果:
  14. Borland C++
  15. */

函数名: strcmp
功  能: 串比较
用  法: int strcmp(char *str1, char *str2);
看Asic码,str1>str2,返回值 > 0;两串相等,返回0

举例:

  1. #include <string.h>
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5. char *buf1 = "aaa", *buf2 = "bbb";
  6. int ptr;
  7. ptr = strcmp(buf2, buf1);
  8. if (ptr > 0)
  9. printf("buffer 2 is greater than buffer 1\n");
  10. else if(ptr < 0)
  11. printf("buffer 2 is less than buffer 1\n");
  12. else
  13. printf("buffer 2 is equal with buffer 1\n");
  14. return 0;
  15. }
  16. /*运行结果:
  17. buffer 2 is greater than buffer 1
  18. */

函数名: strncmpi
功  能: 将一个串中的一部分与另一个串比较, 不管大小写
用  法: int strncmpi(char *str1, char *str2, unsigned maxlen);

举例:

  1. #include <string.h>
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5. char *buf1 = "BBB", *buf2 = "bbb";
  6. int ptr;
  7. ptr = strcmpi(buf2, buf1);
  8. if (ptr > 0)
  9. printf("buffer 2 is greater than buffer 1\n");
  10. if (ptr < 0)
  11. printf("buffer 2 is less than buffer 1\n");
  12. if (ptr == 0)
  13. printf("buffer 2 equals buffer 1\n");
  14. return 0;
  15. }

函数名: strcspn
功  能: 在串中查找第一个给定字符集内容的段
用  法: int strcspn(char *str1, char *str2);
举例:

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <alloc.h>
  4. int main(void)
  5. {
  6. char *string1 = "1234567890";
  7. char *string2 = "747DC8";
  8. int length;
  9. length = strcspn(string1, string2);
  10. printf("Character where strings intersect is at position %d\n", length);
  11. return 0;
  12. }

函数名: strdup
功  能: 将串拷贝到新建的位置处
用  法: char *strdup(char *str);
举例:

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <alloc.h>
  4. int main(void)
  5. {
  6. char *dup_str, *string = "abcde";
  7. dup_str = strdup(string);
  8. printf("%s\n", dup_str);
  9. free(dup_str);
  10. return 0;
  11. }

函数名: stricmp
功  能: 以大小写不敏感方式比较两个串
用  法: int stricmp(char *str1, char *str2);
举例:

  1. #include <string.h>
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5. char *buf1 = "BBB", *buf2 = "bbb";
  6. int ptr;
  7. ptr = stricmp(buf2, buf1);
  8. if (ptr > 0)
  9. printf("buffer 2 is greater than buffer 1\n");
  10. if (ptr < 0)
  11. printf("buffer 2 is less than buffer 1\n");
  12. if (ptr == 0)
  13. printf("buffer 2 equals buffer 1\n");
  14. return 0;
  15. }

函数名: strerror
功  能: 返回指向错误信息字符串的指针
用  法: char *strerror(int errnum);
举例:

  1. #include <stdio.h>
  2. #include <errno.h>
  3. int main(void)
  4. {
  5. char *buffer;
  6. buffer = strerror(errno);
  7. printf("Error: %s\n", buffer);
  8. return 0;
  9. }

函数名: strncmp
功  能: 串比较
用  法: int strncmp(char *str1, char *str2, int maxlen);
举例:

  1. #include <string.h>
  2. #include <stdio.h>
  3. int  main(void)
  4. {
  5. char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";
  6. int ptr;
  7. ptr = strncmp(buf2,buf1,3);
  8. if (ptr > 0)
  9. printf("buffer 2 is greater than buffer 1\n");
  10. else
  11. printf("buffer 2 is less than buffer 1\n");
  12. ptr = strncmp(buf2,buf3,3);
  13. if (ptr > 0)
  14. printf("buffer 2 is greater than buffer 3\n");
  15. else
  16. printf("buffer 2 is less than buffer 3\n");
  17. return(0);
  18. }

函数名: strncmpi
功  能: 把串中的一部分与另一串中的一部分比较, 不管大小写
用  法: int strncmpi(char *str1, char *str2, int len);

举例:

  1. #include <string.h>
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5. char *buf1 = "BBBccc", *buf2 = "bbbccc";
  6. int ptr;
  7. ptr = strncmpi(buf2,buf1,3);
  8. if (ptr > 0)
  9. printf("buffer 2 is greater than buffer 1\n");
  10. if (ptr < 0)
  11. printf("buffer 2 is less than buffer 1\n");
  12. if (ptr == 0)
  13. printf("buffer 2 equals buffer 1\n");
  14. return 0;
  15. }

函数名: strnset
功  能: 将一个串中的前数至多n个字符设定为字符都设为指定字符
用  法: char *strnset(char *str, char ch, unsigned n);
举例:

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(void)
  4. {
  5. char *string = "abcdefghijklmnopqrstuvwxyz";
  6. char letter = 'x';
  7. printf("string before strnset: %s\n", string);
  8. strnset(string, letter, 13);
  9. printf("string after  strnset: %s\n", string);
  10. return 0;
  11. }

函数名: strpbrk
功  能: 在串中查找给定字符集中的字符。依次检验字符串s1中的字符,当被检验字符在字符串s2中也包含时,则停止检验,并返回该字符位置,空字符null不包括在内。返回s1中第一个满足条件的字符的指针,如果没有匹配字符则返回空指针NULL。
用  法: char *strpbrk(char *str1, char *str2);
举例:

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(void)
  4. {
  5. char *string1 = "abcdefghijklmnopqrstuvwxyz";
  6. char *string2 = "onm";
  7. char *ptr;
  8. ptr = strpbrk(string1, string2);
  9. if (ptr)
  10. printf("strpbrk found first character: %c\n", *ptr);
  11. else
  12. printf("strpbrk didn't find character in set\n");
  13. return 0;
  14. }

函数名: strrev
功  能: 串倒转
用  法: char *strrev(char *str);
举例:

#include <string.h>
#include <stdio.h>
int main(void)
{  char forward[] = "hello world!";  printf("Before strrev(): %s\n", forward);  strrev(forward);  printf("After strrev():  %s\n", forward);  return 0;
}  /*运行结果:
Before strrev(): string
After strrev():  gnirts
*/ 

函数名: strstr
功  能: 在串中查找指定字符串的第一次出现,全匹配,若不匹配为空则返回为null
用  法: char *strstr(char *str1, char *str2);
举例:

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(void)
  4. {
  5. char *str1 = "Borland International", *str2 = "nation", *ptr;
  6. ptr = strstr(str1, str2);
  7. printf("The substring is: %s\n", ptr);
  8. return 0;
  9. }

函数名: strtod
功  能: 将字符串转换为double型值
用  法: double strtod(char *str, char **endptr);
举例:

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(void)
  4. {
  5. char input[80], *endptr;
  6. double value;
  7. printf("Enter a floating point number:");
  8. gets(input);
  9. value = strtod(input, &endptr);
  10. printf("The string is %s the number is %lf\n", input, value);
  11. return 0;
  12. }

函数名: strtol
功  能: 将串转换为长整数
用  法: long strtol(char *str, char **endptr, int base);

参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如’0x’前置字符则会使用16进制做转换、遇到’0’前置字符而不是’0x’的时候会使用8进制做转换。
一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回;若参数endptr为NULL,则会不返回非法字符串。

举例:

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. int main(void)
  4. {
  5. char *string = "87654321", *endptr;
  6. long lnumber;
  7. /* strtol converts string to long integer  */
  8. lnumber = strtol(string, &endptr, 10);
  9. printf("string = %s  long = %ld\n", string, lnumber);
  10. return 0;
  11. }

函数名: strupr/strlwr
功  能: 将串中的小写字母转换为大写字母(大写变为小写)
用  法: char *strupr(char *str);char *strlwr(char *str);
举例:

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(void)
  4. {
  5. char *string = "abcdefghijklmnopqrstuvwxyz", *ptr;
  6. /* converts string to upper case characters */
  7. ptr = strupr(string);
  8. printf("%s\n", ptr);
  9. return 0;
  10. }

转载于:https://www.cnblogs.com/engineerLF/p/5392975.html

C语言字符串操作常用库函数相关推荐

  1. C语言字符串操作函数 - strcpy、strcmp、strcat、反转、回文

    C语言字符串操作函数 1. 字符串反转 - strRev 2. 字符串复制 - strcpy 3. 字符串转化为整数 - atoi 4. 字符串求长 - strlen 5. 字符串连接 - strca ...

  2. C语言字符串处理的库函数

    使用C语言字符串处理的库函数,务必包含头文件string.h,即#include <string.h>       1. 比较字符串大小函数        1) 忽略大小写---strca ...

  3. 字符串操作 c语言,C语言字符串操作(示例代码)

    C语言字符串操作函数 1.strlen strlen用于求一个C风格字符串的长度,函数原型为 #include size_t strlen(const char *s); 返回值为字符串的长度,当遇到 ...

  4. 字符串固定长度 易语言_易语言字符串操作源码

    易语言字符串操作源码 系统结构:字符串_取长度,字符串_取中间,字符串_取左边,字符串_取右边,字符串_替换,到宽字符,到多字节,取文本数据地址,取字节集数据地址,MultiByteToWideCha ...

  5. c++ 字符串连接_C语言字符串操作总结大全(超详细)

    本篇文章是对C语言字符串操作进行了详细的总结分析,需要的朋友参考下 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, ...

  6. c语言扫描字符串,C语言字符串操作

    C语言字符串操作 C语言是一门通用计算机编程语言,在我们的日常生活中应用非常广泛,今天小编为大家搜集整理出来的有关于C语言字符串操作,希望可以帮助到大家! ①strcmp函数原型:int strcmp ...

  7. c语言生命字符串,常见的C语言字符串操作

    原标题:常见的C语言字符串操作 #字符串倒序输出 实现逻辑,通过strlen获取字符串长度,然后通过 len/2 进行交叉赋值,这里需要注意,不需要考虑len是奇数还是偶数的问题. 如果len是奇数, ...

  8. c语言字符串函数难题,一些常见的C语言字符串操作

    #字符串倒序输出 实现逻辑,通过strlen获取字符串长度,然后通过 len/2 进行交叉赋值,这里需要注意,不需要考虑len是奇数还是偶数的问题. 如果len是奇数,最后一个字符就不需要倒序,如果是 ...

  9. c语言字符串的一般操作有,面试必备——常见的C语言字符串操作

    原标题:面试必备--常见的C语言字符串操作 面试中常见的C语言字符串操作,快来看看,是否对你有帮助! 字符串倒序输出 实现逻辑,通过strlen获取字符串长度,然后通过 len/2 进行交叉赋值,这里 ...

最新文章

  1. 面试问了这两个问题,很多人的回答都自相矛盾
  2. python知识:numpy如何保存矩阵
  3. python 内置递归
  4. CentOS6.x下GitLab安装
  5. YBTOJ洛谷P4551:最长异或路径(trie树)
  6. 通过kubeadm安装kubernetes 1.7文档记录[docker容器方式]
  7. c语言强化训练作业整理1
  8. 【神经网络与深度学习】卷积神经网络在自然语言处理的应用
  9. c++ loadlibrary 初始化对象_C++构造函数和初始化表
  10. c++ 之条件运算符--- ?:
  11. 传统高斯模糊与优化算法(附完整C++代码)
  12. trace (矩阵的迹) 的性质
  13. 优盘中发现计算机病毒怎么办,u盘中毒了文件夹被病毒隐藏怎么办?
  14. 发布Library到JCenter
  15. 算法竞赛进阶指南0x00基本算法 0x01位运算 例题起床困难综合征
  16. 计算机CPU四大体系架构
  17. ZYNQ EMMC/FLASH/SD卡硬件性能测试
  18. 物理层-计算机网络知识汇总(二)|Zam9036博客
  19. 【信管1.17】信息化发展
  20. 奔涌吧 后浪!!! 哔哩哔哩 何冰

热门文章

  1. Boost:bimap双图项目的测试程序
  2. ITK:将BinaryMorphologicalClosingFilter应用于给定LabelMap的一个LabelObject
  3. ITK:侵蚀二进制图像
  4. QT的QListWidget类的使用
  5. C语言中的变量是怎么回事?
  6. mysql5.7.32 win7_拯救10年前老爷机:C盘不到3G的Win7官方精简版amp;俄大神精简版分享...
  7. 2.5.jieba分词工具、Jieba安装、全模式/精确模式、添加自定义词典、关键词抽取、词性标注、词云展示
  8. 单线程实现检索当当网泄露的1GB用户数据
  9. Java程序执行Linux命令
  10. python装饰器怎么编程_Python编程:Python装饰器入门