当前位置: 首页 > news >正文

linux-字符串函数使用

linux-字符串函数使用

  • 输入
  • 输出
  • 长度
  • 大小
  • 拼接
  • 拷贝
  • 填充
  • 查找
  • 比较

字符串的输入,输出,长度,大小,拼接,拷贝,填充,查找,比较

输入

相关的函数有: gets()、getchar()、fgetc()、fgets() 、scanf()。

s输入字符串, char/c输入字符, f可以是标准输入也可以是文件中获取

//gets 获取字符串给str 标准输入gets(str);puts(str); //将str输出出来
//fgets 获取输入的字符串 标准输入 和 文件输入fp = fopen("./test1.txt","a+"); //打开或创建test.txt文件,在末尾进行写入fgets(str2,8,fp); //sizeof(str2) 个数printf("%s\n",str2);fclose(fp);
//fgetc 获取输入的字符 标准输入 和 文件输入fp = fopen("./test1.txt","a+");ch = fgetc(fp); //sizeof(str2) 个数printf("%c\n",ch);fclose(fp);
//fseek() 移动光标fp = fopen("./test1.txt","a+");fseek(fp,3,SEEK_SET);ch=fgetc(fp);printf("%c\n",ch);fclose(fp);

输出

相关的函数有:putchar(),puts(),fputc(),fputs(),printf();

putchar('a'); //输出单个字符 到标准输出设备 
puts("hello world!");  //输出字符串 到标准输出设备 自动换行
 //与putchar类似,输出单个字符,到标准输出设备//不同的是还可以输出到指定文件fputc('a',fp); //指定文件fputc('a',stdout);//到终端 标准输出设备例子FILE *fp = NULL;if((fp = fopen("./test1.txt","w")) == NULL )
{perror("fopen err");exit(-1);
}fputc('a',fp);  //向文件输出puts("fputc写入成功");fputc('a',stdout); //向终端输出fputc('\n',stdout);fclose(fp);
//与puts()类似,输出字符串,到标准输出设备
//不同的是还可以输出到指定文件
fputs("bcdefj",fp);  //向文件输出
fputs('bcdefj',stdout); //到终端 标准输出设备
例子
FILE *fp = NULL;
if((fp = fopen("./test1.txt","a+")) == NULL )
{perror("fopen err");exit(-1);
}fputs("bcdefjhigklmn",fp);  //向文件输出puts("fputs写入成功");fputs("bcd",stdout);fclose(fp);

长度

求字符串长度–strlen() 库函数 长度

    char str[]="zxcvbnmasdfghjklqwertyuiop";printf("string:\"%s\"\n",str);printf("Length:\" %ld\"\n",strlen(str));puts("----------");/*  输出string:"zxcvbnmasdfghjklqwertyuiop"Length:" 26"----------*/

大小

求数据类型或变量占用内存的大小–sizeof() c语音中的关键字 内存

    char str2[50]="hellow";char *ptr = str2;printf("sizeof: %ld\n", sizeof(str2));printf("strlen: %ld\n", strlen(str2));puts("~~~~~");printf("sizeof: %ld\n", sizeof(ptr));printf("strlen: %ld\n", strlen(ptr));printf("int-sizeof: %ld\n", sizeof(int)); //4printf("char-sizeof: %ld\n", sizeof(char)); //1puts("----------");/*  输出sizeof: 50strlen: 6~~~~~sizeof: 8strlen: 6int-sizeof: 4char-sizeof: 1----------
*/

拼接

字符串拼接–strcat() strncat()
strcat(str1,str2)—将str2全部放到str1后面。
strncat(str1,str2,num)—将str2前num个放到str1后面。

    char str3[50]="hellow ";char str3_1[]="world !";puts("strcat函数:全部追加");strcat(str3,str3_1); //在最后进行添加printf("拼接后字符串为:\"%s\"\n",str3);puts("~~~~~");memset(str3,0x0,7); //str3字符串清零puts("strncat函数:追加的数量");strncat(str3,str3_1,5); //指定添加的个数printf("拼接后字符串为:\"%s\"\n",str3);puts("----------");
/*  输出strcat函数:全部追加拼接后字符串为:"hellow world !"~~~~~strncat函数:追加的数量拼接后字符串为:"world"
*/

拷贝

字符串拷贝 strcpy() strncpy()
strcpy(str1,str2)—将字符串str2全部拷贝到str1。
strncpy(str1,str2,num)—将字符串str2前num个数据拷贝到str1。
都是从头开始拷贝的,没涉及到的位置保持不变。

    char str4[50];char str4_1[]="hellow world";puts("strcpy函数 全部复制");strcpy(str4,str4_1);printf("复制后str4: \"%s\"\n",str4);puts("~~~~~");memset(str4,'g',20); //将str4字符串前20位置为'g';puts("strcpy函数 复制的数量");strncpy(str4,str4_1,6);printf("复制后str4: \"%s\"\n",str4);puts("----------");
/*  输出strcpy函数 全部复制复制后str4: "hellow world"~~~~~strcpy函数 复制的数量复制后str4: "hellowgggggggggggggggg"----------
*/

填充

字符串填充 memset() bzero()
memset(str,dat,len)—把str里的数据从头开始填充数据dat(dat会被转换为 unsigned char 类型),共填充len个字节。
bzero(str,len)—将str字符串前len个字节给清零。

    char str5[50]="22222222222";printf("str5:   %s\n", str5);memset(str5,'3',strlen(str5));printf("memset: %s\n", str5);bzero(str5,strlen(str5));printf("bzero:  %s\n",str5);puts("----------");
/*  输出str5:   22222222222memset: 33333333333bzero:  ----------
*/    

查找

字符串查找 strstr() strchr() strrchr()
char *strstr(const char *str1, const char *str2)—在字符串str1中查找第一次出现字符串str2的位置,并返回指向该位置的指针。如果没有找到,则返回NULL。
char *strchr(const char *s, int c) —在字符串s中查找第一次出现字符c的位置,并返回指向该位置的指针。
char *strrchr(const char *s, int c)-—在字符串s中查找最后一次出现字符c的位置,并返回指向该位置的指针

    char str6[]="hello world";char *p = strstr(str6,"world");if(p!= NULL)printf("strstr函数: %s\n",p);elseprintf("strstr函数: 没有找到\n");puts("----------");
/*	输出strstr函数: world
*/

比较

字符串比较 strcmp() strncmp() memcmp()
int strcmp(const char *s1, const char *s2)—比较s1和s2的大小,按照对应想ASCII值来,直到找到不同的字符串或其中一个字符串结束。s1小于s2,返回一个负值。大于时返回一个正值。等于返回0。

int strncmp(const char *s1, const char *s2, size_t n)—比较字符串s1和s2的前n个字符的大小。比较方式与strcmp相同。

int memcmp(const void *s1, const void *s2, size_t n)—比较从s1和s2开始的n个字节的内存区域。比较是按照字节进行的,返回值与strcmp类似。

    char str7[]="hello";char str7_1[]="world";printf("strcmp函数: %d\n",strcmp(str7,str7_1));printf("strncmp函数: %d\n",strncmp(str7,str7_1,5));printf("memcmp函数: %d\n",memcmp(str7,str7_1,5));puts("----------");
/*	输出strcmp函数: -120strncmp函数: -120memcmp函数: -1----------
*/
http://www.lryc.cn/news/447408.html

相关文章:

  • Python 06 Set
  • ControllerAdvice定义统一异常处理
  • Leetcode 162.寻找峰值
  • c语言:知识补充
  • Dapper介绍及特性
  • LeetCode 149. 直线上最多的点数
  • 案例研究丨国控星鲨利用DataEase释放数据潜能,重塑业务视野
  • 网络基础概念和 socket 编程
  • TypeScript 中的接口、泛型与自定义类型
  • 常州威雅学校:跟随这场音乐盛宴,溯回她的音乐之路
  • 【YashanDB知识库】由于hist_head$中analyze time小于tab$中analyze time导致的sql语句执行慢
  • 【有啥问啥】深度理解主动学习:机器学习的高效策略
  • 智能守护者X100 - 自动化生产线智能机器人安全监控管理系统
  • harmonyos面试题
  • 神经网络介绍及其在Python中的应用(一)
  • 数据流处理技术与Flink框架
  • qt中QTatlewidget类常用操作表格的函数有哪些?
  • Linux上的C/C++编程
  • 注意 秋季饮酒的正确打开方式
  • Python如何配置环境变量详解
  • Linux驱动开发(速记版)--并发与竞争
  • AI赋能,数字技术服务平台促进产业协同发展
  • RabbitMQ下载安装运行环境搭建
  • Redis过期时间删除策略详解
  • mysql数据库的基本管理
  • 根据现有html里的元素上面动态创建el-tooltip组件并显示的几种方式
  • 【C++篇】迈入新世界的大门——初识C++(上篇)
  • 啥?Bing搜索古早BUG至今未改?
  • ValueError: Out of range float values are not JSON compliant
  • 【架构】NewSQL