• qsort()
  • str系列函数
  • isalpha()

1,qsort()

功能: 快速排序,其时间复杂度为n*log(n)

头文件: <stdlib.h>

声明

void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))

参数
base – 指向要排序的数组的第一个元素的指针。
nitems – 由 base 指向的数组中元素的个数。
size – 数组中每个元素的大小,以字节为单位。
compar – 用来比较两个元素的函数。

实例

#include <stdio.h>
#include <stdlib.h>int cmpfunc (const void * a, const void * b)
{return ( *(int*)a - *(int*)b );
}int main(int argc, const char *argv[])
{int arr[] = { 88, 56, 100, 2, 25 };int arr_size = sizeof(arr)/sizeof(arr[0]);qsort(arr, arr_size, sizeof(int), cmpfunc);for(int i = 0 ; i < arr_size; i++ ) {printf("%d ", arr[i]);}return 0;
}

PS:二分查找:

int search(int* nums, int numsSize, int target){int left = 0;int right = numsSize - 1;while (left <= right) {int mid = left + (right - left) / 2;if ( target > nums[mid]) {left = mid + 1;} else if (target < nums[mid]) {right = mid - 1;} else {return mid;}}return -1;
}

2,str系列函数

#include<stdio.h>
#include<stdlib.h>
#include<string.h>int main()
{char *str1;char *str2 = "Hello";char *str3 = "World";/*1,strcpy(dest,src)此函数原型为 char *strcpy(char* dest, const char *src)功能为拷贝字符串内容到目的串,把src所指向的内容拷贝到dest*/str1 = (char *)calloc(1,sizeof(char));strcpy(str1,str2);printf("%s\n",str1);  // Hello/*2,strcmp(str1,str2)此函数的函数原型为 int strcmp(const char *str1, const char *str2).功能为比较两个字符串。当str1指向的字符串大于str2指向的字符串时,返回正数。当str1指向的字符串等于str2指向的字符串时,返回0。当str1指向的字符串小于str2指向的字符串时,返回负数。*/if(strcmp(str1,str2)==0){printf("String1 equal to String2 !\n");}/*3,strlen(str)此函数原型为unsigned in strlen(const char *str)功能为返回字符串str的长度(不包括'\0')。*/printf("%lu\n",strlen(str1)); //5/*4,strcat(dest,src)此函数原型为 char *strcat(char *dest, const char *src).功能为连接两个字符串,把src连接到dest后面;返回dest地址*/strcat(str1,str3);printf("%s\n",str1); //HelloWorld/*5、strstr()函数原型为char *strstr(const char str1, const char *str2)功能为查找字符串str2在str1中是否出现,找到则返回str1从找到位置开始之后的字符串,否则返回NULL。*/char *res = strstr(str1,"llo");if(!res) {printf("s2 is not in s1!\n");} else {printf("s2 appear in s1 in pos: %s\n",res); //lloworld}/*6,strchr()  strrchr()char *strchr(char *str, char c)功能为返回str中首次出现c的位置之后的字符串,如果str中不含c返回NULLchar *strrchr(char *str, char c)功能为返回str中最后一次出现c的位置之后的字符串,如果str中不含c返回NULL*/printf("%s\n",strchr(str1,'o')); //oWorldprintf("%s\n",strrchr(str1,'o')); //orld/*7、strcspn()  strspn()strcspn原型:size_t strcspn(const char *pstr, const char *strCharset)在字符串pstr中搜寻strCharsret所包含字符在pstr中第一次出现的位置strspn原型size_t strspn(const char *pstr, const char *strCharset)功能:返回pstr字符串中第一个不在后者出现的下标。*/unsigned long n = strcspn(str1,"World");printf("char in s2 first appear in s1 is %c; pos in s1 is %lu\n",str1[n],n);// l,2printf("%lu\n",strspn(str1,"HelloKitty")); //5/*8、strtoul原型为unsigned long strtoul(const char *nptr,char **endptr,int base);将参数nptr字符串根据参数base来转换成无符号的长整型数,endstr 为第一个不能转换的字符的指针。*/char *arg = "1234a5";char *endstr=NULL;if(strtoul(arg, &endstr, 10) > 65535 || !endstr || '\0' != *endstr){printf("wrong endstr: %s!\n", endstr); // a5} else {printf("%lu is uint16!\n", strtoul(arg, &endstr, 10));}/*9、strdup()此函数原型为char *strdup(const char *str)功能为拷贝字符串到新建的内存,返回内存指针。若失败,返回NULL。要注意,返回的指针指向的内存在堆中,所以要手动释放。*//*10、strtok函数原型为char *strtok(char s[], const char *delim);功能为分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则将delim替换为‘\0’,返回指向被分割出片段的指针。*/char str[] = "Jack,Kimi,Lily,Lucy";//对str_new进行strtok操作,防止str被更改char *str_new = strdup(str);//arr用来保存结果char **arr =(char **)calloc(1,sizeof(char *));int i = 0;char *temp = strtok(str_new,",");while(temp){arr[i] = (char *)calloc(1, sizeof(char));strcpy(arr[i], temp);temp = strtok(NULL,",");i++;}for(int j = 0; j < i; j++){printf("arr[%d]:%s\n", j, arr[j]);}free(arr);free(str_new);return 0;
}

3, isalpha()

功能: isalpha()用来检测一个字符是否是字母。在默认情况下,字母包括:
a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z.
要检测的字符可以是一个有效的字符(被转换为 int 类型),也可以是 EOF(表示无效的字符),如果是字符,则返回1, 否则返回0 。

头文件:<ctype.h>

与此类似的函数有:

isdigit()判断一个字符是否是十进制数字

isalnum()判断一个字符是否是字母或数字

islower()判断一个字符是否是小写字母

isupper()判断一个字符是否是大写字母

tolower()将大写字母转换为小写字母

toupper()将小写字母转换为大写字母

c语言str系列函数相关推荐

  1. C语言str系列函数操作

    1.strcpy ①函数原型:char * strcpy(char * destination,const char * source); ②作用:将source指向的C字符串复制到destinati ...

  2. C语言str系列库函数

    C语言str系列库函数在不同的库中有不同的实现方法,但原理都是一样的.因为库函数都是没有进行入口参数检查的,并且str系列库函数在面试中经常容易被面试官喊在纸上写某一个函数的实现,因此本文参考了Ope ...

  3. R 语言 apply 系列函数

    apply() 4 4.0 > #apply系列函数 > > #apply(X, MARGIN, FUN, ...) > #参数列表: > #X:数组.矩阵.数据框 &g ...

  4. R语言apply系列函数

    apply系列函数 大家好,这里是想做生信大恐龙

  5. C/C++中的str系列函数大全

    目录 1.strlen函数 2.strcpy函数 3.strcat函数 4.strncat函数 5.strcmp函数 6.strimp函数 7.strncmp函数 拓展: (1)strnicmp函数 ...

  6. str系列函数详解(包会)

    1.strlen 字符串向后依次遍历,直到找到'\0'为止,返回数字不计入'\0'. 2.strcpy 输入两个字符串作为参数,例如strcpy(arr1,arr2),函数将arr2中的每个字符依次替 ...

  7. c语言str相关的函数

    C语言str系列库函数在不同的库中有不同的实现方法,但原理都是一样的.因为库函数都是没有进行入口参数检查的,并且str系列库函数在面试中经常容易被面试官喊在纸上写某一个函数的实现,因此本文参考了Ope ...

  8. C语言strlen等系列函数详细总结

    目录 一.strlen函数 二.C语言模拟实现strlen函数的3种方法 三.str系列函数 strcpy函数 strcat函数 strcat函数模拟实现 strcmp模拟实现 一.strlen函数 ...

  9. python语言format是什么意思_Python代码中str.format()函数有什么功能呢?

    摘要: 下文讲述Python代码中str.format()函数的简介说明,如下所示: str.format()函数功能 用于将字符串格式化,然后输出 str.format()函数语法 通过{} 和:替 ...

最新文章

  1. 三星二级菜单_你变我也变,神奇的excel二级联动下拉菜单
  2. 模拟Sum函数(版本二)
  3. inline修饰虚函数问题
  4. [源码研究]Some debugger screenshot of Slf4jLogger creation
  5. Linux/Windows系统内核性能调优
  6. hadoop native安装
  7. 用phpcms如何将静态页面制作成企业网站(中)
  8. Django学习笔记5-url
  9. java基础语法day03
  10. c语言跑酷小游戏代码,跑酷游戏代码
  11. Delphi 2007 XE10.1 MD5加密 中文 英文 16位 32位
  12. 常见经典音频运放(一般作前级用)
  13. java8 Stream详解
  14. JAVASCRIPT实现基于文本的自动智能聊天机器人
  15. android 九宫格带删除,Android--选择多张图片,支持拖拽删除、排序、预览图片
  16. Hibernate基础知识
  17. IPC Send timeout/node eviction etc with high packet reassembles failure
  18. flink sql 如何upsert 到一张hologres表中
  19. Python实现isPrime()函数,参数为整数,要有异常处理。如果整数是质数,返回True,否则返回False。通过调用isPrime()函数,打印200以内的所有质数,以空格分割。
  20. 深度学习如何解决各类科学问题

热门文章

  1. 如何让女朋友说Yes I Do,数据分析助力客户管理秘籍
  2. macbook电脑如何通过ssh连接群晖nas?
  3. JavaScript 正则匹配中英文姓名
  4. eNSP 路由远程登录
  5. 无限制神器aria2懒人包及Aria2配置/Web管理面板教程
  6. Android 输入法键盘的隐藏和显示
  7. Tracup已证明,高效敏捷的沟通与协作可提升IT生产力
  8. XPO的UpCasting
  9. 内网渗透-内网代理穿透和内网横向移动
  10. VPP GTP-U隧道性能测试3---GTP-U封包性能测试