6.6字符串操作常用函数三
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
/* 6.6
author:edcfreedom
date:2021/8/23
funDescription:
字符串几种常用的API(函数)
第三种
*/
/*
函数原型
char *strchr(const char *str, int c)
参数
str-- 要被检索的 C 字符串。
c-- 在 str 中要搜索的字符。
功能
在参数str所指向的字符串中搜索第一次出现字符c(一个无符号字符)的位置。
返回值
返回一个指向该字符串中第一次出现的字符的指针,如果字符串中不包含该字符则返回NULL空指针。 [2]
头文件
#include <string.h>
*/
/*
strstr()函数头文件:
#include <string.h>
strstr()函数用来检索子串在字符串中首次出现的位置,其原型为:
char *strstr( char *str, char * substr );
函数参数:
str参数为要检索的字符串,
substr参数为要检索的子串。
函数返回值:
返回字符串str中第一次出现子串substr的地址;如果没有检索到子串,则返回NULL。
*/
/*
strlwr()用于将字符串中的字符转换为小写,其原型为:
char *strlwr(char *str);
【参数说明】str为要转换的字符串。
【返回值】返回转换后的小写字符串,其实就是将str返回。
strupr作用相反,用法一样
*/
int main()
{
char *str = "chenlichen";
char c = 'i';
char *p = NULL;
//指针需要开辟字符空间
/*
p = strchr(str,c);
if(p == NULL){
printf("没有找到\n");
}else{
printf("找到了\n");
puts(p);
}
*/
char *substr = "li";
/*
p = strstr(str,substr);
if(p == NULL){
printf("没有找到\n");
}else{
printf("找到了\n");
puts(p);
}
*/
/*
char str1[] = "Hello World";//win系统下,Windows环境下 要定义成数组的形态,否则崩溃,Linux是可以的
//char *str1 = "Hello World";//Linux系统下
puts(strlwr(str1));//小写
puts(strupr(str1));//大写
*/
//strtok做字符串的分割 char *strtok(char *strings,const char *tokseps); chen,guan,xi
char str2[] = "chen,li,chen";
p = strtok(str2,",");
if(p != NULL){
printf("获取到第一个串p = %s\n",p);
}
//获取第二个串的方式很奇葩,艮第一次不一样的是,目标字符串改成NULL
p = strtok(NULL,",");
printf("获取到第二个串p = %s\n",p);
//获取第三个串的方式
p = strtok(NULL,",");
printf("获取到第三个串p = %s\n",p);
//如果后面还有串就继续做
/*
int i = 1;
p = strtok(str2,",");
if(p != NULL){
printf("获取到第%d个串p = %s\n",i,p);
}
也可以用while循环
while(1){
i++
p = strtok(NULL,"");
if(p != NULL){
printf("获取的第%d个串是p = %s\n",i,p);
}else{
printf("没有子串\n");
break;
}
}
*/
system("pause");
return 0;
}