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

C语言字符串的处理

用惯了Java C#这些语言,C语言中处理字符串还是有些不习惯的,所以这里写一下学习笔记。

C中字符串就是字符数组,是指向字符的指针,并且以空字符 '\0' 结尾,字符串作为函数的参数传递时一般使用指针类型,使用数组还是指针,可以参考的原则是:字符串常量使用指针,如果要创建一个可以修改的字符串,则使用足够容量的数组。

C语言中处理字符串的相关函数在 string.h,常用的就是复制、拼接、比较字符串,判断一个字符串包含另一个字符串,或者以某个字符串开头/结尾,下面是相关的代码:

#include <stdio.h>
#include <string.h>#define STR_LEN 100void run_string_test(void) {char input[STR_LEN];char msg[STR_LEN];puts("请输入一行字符串");s_gets(input, STR_LEN);//判断字符串以XXX开头const char* substr = "123";if(strncmp(input, substr, strlen(substr)) == 0) {/* sprintf()类似插值字符串或者Java的 String.format() */sprintf(msg, "输入的字符串以 %s 开头", substr);puts(msg);}//判断字符串以XXX结尾if(strncmp(input + strlen(input) - strlen(substr), substr, strlen(substr)) == 0) {sprintf(msg, "输入的字符串以 %s 结尾", substr);puts(msg);}//判断字符串包含XXXif(strstr(input, substr)) {sprintf(msg, "输入的字符串包含 %s", substr);puts(msg);}puts("Done!");
}char* s_gets(char * st, int n) {char* ret_val;int i = 0;ret_val = fgets(st, n, stdin);if(ret_val != NULL) {while (st[i] != '\n' && st[i] != '\0') {i++;}if(st[i] == '\n') {st[i] = '\0';} else {while (getchar() != '\n') {continue;}}}return ret_val;
}

http://www.lryc.cn/news/102163.html

相关文章:

  • Docker 阿里云容器镜像服务
  • 10kV 电力电缆交流耐压试验方案
  • 【雕爷学编程】MicroPython动手做(20)——掌控板之三轴加速度6
  • 链路 聚合
  • DPN(Dual Path Network)网络结构详解
  • 【转载】Gin框架优雅退出
  • 【数字IC设计】VCS仿真DesignWare IP
  • 【*1900 图论+枚举思想】CF1328 E
  • AutoSAR系列讲解(实践篇)10.5-通信管理模块
  • 2023.7.30(epoll实现并发服务器)
  • 小研究 - 基于解析树的 Java Web 灰盒模糊测试(一)
  • SpringBoot接手JSP项目--【JSB项目实战】
  • Python模块psycopg2连接postgresql
  • Kotlin基础(八):泛型
  • Java学习笔记——(10)环境变量path配置及其作用
  • 【图像去噪】基于进化算法——自组织迁移算法(SOMA)的图像去噪研究(Matlab代码实现)
  • TMS WEB Core Crack,TMS软件Delphi组件RADical Web
  • PHP使用Redis实战实录4:单例模式和面向过程操作redis的语法
  • 解决:移动端H5的<video>初始化拿不到总时长
  • 百度云上传身份证获取身份信息封装
  • vscode 上cmake 版本过低
  • OS-08-事件驱动:C10M是如何实现的?
  • mysql 主从同步排查和处理 Slave_IO、Slave_SQL
  • 基于解析法和遗传算法相结合的配电网多台分布式电源降损配置(Matlab实现)
  • 07mysql查询语句之子查询
  • 笙默考试管理系统-MyExamTest(22)
  • Windows 不同方式打开的cmd/dos窗口属性配置不同
  • 性能优化-webpack配置gzip
  • RabbitMQ 教程 | 第3章 客户端开发向导
  • 基于深度学习的CCPD车牌检测系统(PyTorch+Pyside6+YOLOv5模型)