字符串库函数<string.h>

求字符串长度(不含结束符’\0’****) strlen(str)
字符串赋值(可能造成数组越界) strcpy(str," 水浒传 ");
字符串追加(可能造成数组越界) strcat(str," 三国演义 ")
字符串比较(小于:-1/等于:0/大于:1****) strcmp("AAA", "BBB");

strlen:自动无视结束符

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(int argc, char *argv[]) {
  4. char str1[] = "Trump";
  5. printf("sizeof %d\n", sizeof(str1));
  6. printf("strlen %d\n", strlen(str1));
  7. printf("*******************\n");
  8. char str2[] = "川普";
  9. printf("sizeof %d\n", sizeof(str2));
  10. printf("strlen %d\n", strlen(str2));
  11. return 0;
  12. }

strcpy赋值/复制

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(int argc, char *argv[]) {
  4. // 眼见喜、耳听怒、鼻嗅爱、舌尝思、意见欲、身本忧"
  5. char str1[]="眼见喜";
  6. printf("%d\n", sizeof(str1));
  7. printf("%s\n", str1);
  8. printf("**strcpy*******************************\n");
  9. strcpy(str1,"耳听怒");
  10. printf("%d\n", sizeof(str1));
  11. printf("%s\n", str1);
  12. printf("**strcpy不检测大小是否匹配*******************************\n");
  13. int n1 = 1000;
  14. printf("新变量:%d\n", n1);
  15. strcpy(str1,"鼻嗅爱、舌尝思");
  16. printf("%d\n", sizeof(str1));
  17. printf("%s\n", str1);
  18. printf("新变量:%d\n", n1); // n1被破坏了
  19. return 0;
  20. }

注意:strcpy不检测大小是否匹配

  1. char str1[]="眼见喜";
  2. int n1 = 1000;
  3. strcpy(str1,"鼻嗅爱、舌尝思");

strcat(Concatenate·连接)

注意:strcat也不检测大小是否匹配

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(int argc, char *argv[]) {
  4. char str1[]="眼见喜";
  5. printf("sizeof %d\n", sizeof(str1));
  6. printf("strlen %d\n", strlen(str1));
  7. printf("%s\n", str1);
  8. printf("**strcat不检测大小是否匹配*******************************\n");
  9. int n1 = 1000;
  10. printf("新变量:%d\n", n1);
  11. strcat(str1, "、耳听怒");
  12. printf("新变量:%d\n", n1);// 被破坏
  13. printf("sizeof %d\n", sizeof(str1));
  14. printf("strlen %d\n", strlen(str1));
  15. printf("%s\n", str1);
  16. return 0;
  17. }

strcmp判等

str1str1:1

str2str3:0

小于:-1

大于:1

等于:0

  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(int argc, char *argv[]) {
  4. char str1[200]="a";
  5. char str2[200]="b";
  6. char str3[200]="b";
  7. // 使用==判断是错误的
  8. printf("str1==str1:%d\n", str1==str1);
  9. printf("str2==str3:%d\n", str2==str3);// 判断错误
  10. int nCmp;
  11. nCmp = strcmp("a", "b");
  12. printf("小于:%d\n", nCmp);
  13. nCmp = strcmp("b", "a");
  14. printf("大于:%d\n", nCmp);
  15. nCmp = strcmp(str2, str3);
  16. printf("等于:%d\n", nCmp);
  17. return 0;
  18. }

字符串转数字

需要#include <stdlib.h>

转整形 int n = atoi(str);
转浮点型(double****) double d = atof(str);

C语言讲义——字符串库函数的更多相关文章

  1. C语言讲义——字符串

    字符数组 C语言字符串就是字符数组. 单写字符,用单引号.如:'A'. 字符串用双引号.如:"A"."ABC". #include <stdio.h> ...

  2. R语言拆分字符串

    R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...

  3. C语言之字符串处理函数

    C语言中字符串处理函数介绍 下面介绍8种基本的常用的字符串处理函数,在数值数组中也常常用到(部分函数).所有的C语言编译系统中一般都提供这些函数. 1.puts函数——输出字符串的函数 一般的形式为p ...

  4. Swift3.0语言教程字符串与URL的数据转换与自由转换

    Swift3.0语言教程字符串与URL的数据转换与自由转换 Swift3.0语言教程字符串与URL的数据转换 Swift3.0语言教程字符串与URL的数据转换与自由转换,字符串中的字符永久保存除了可以 ...

  5. Swift3.0语言教程字符串与文件的数据转换

    Swift3.0语言教程字符串与文件的数据转换 Swift3.0语言教程字符串与文件的数据转换,如果想要对字符串中的字符进行永久保存,可以将字符串中的字符写入到文件中.当然,开发者也可以将写入的内容进 ...

  6. Swift3.0语言教程字符串转换为数字值

    Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...

  7. Swift3.0语言教程字符串大小写转化

    Swift3.0语言教程字符串大小写转化 Swift3.0语言教程字符串大小写转化,在字符串中,字符串的格式是很重要的,例如首字母大写,全部大写以及全部小写等.当字符串中字符很多时,通过人为一个一个的 ...

  8. C语言学习 —— 字符串的学习(一)

    这是本人在学习 C语言有关 字符串内容 时的相关笔记 由于本人技术有限,如有错误,还望指正 C语言中数据类型中只有 字符型(char),而 char型 变量一次只能存储一个字符,在日常工作中经常需要定 ...

  9. iOS开发-OC语言 (三)字符串

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 24.0px "PingFang SC" } p ...

随机推荐

  1. 隐马尔科夫模型 HMM(Hidden Markov Model)

    本科阶段学了三四遍的HMM,机器学习课,自然语言处理课,中文信息处理课:如今学研究生的自然语言处理,又碰见了这个老熟人: 虽多次碰到,但总觉得一知半解,对其了解不够全面,借着这次的机会,我想要直接搞定 ...

  2. selenium中如何保证操作元素的成功率?也就是说如何保证我点击的元素一定是可以点击的?

    1.在寻找元素时,加上显示等待或者隐式等待,这样在对元素进行操作之前保证元素被找到,进而提高成功率: 2.在对元素操作之前,比如click,如果该元素未display(非hidden),就需要先滚动到 ...

  3. Visual Studio 2017 创建Winfrom工程

    1.打开Visual Studio 2017,出现界面点击-创建新项目 2.选择-Window桌面,选择windows 窗体应用(.NET Framework) 3.完成窗体程序创建,可在左边工具栏里 ...

  4. Serilog 源码解析——总览

    背景 大家好,考虑到在最近这些天,闲来无事,找了个类库好好研究下别人写的高质量代码,颇有收获,打算和大家分享下.考虑到最近在自学 ASP.NET Core 的相关开发,对 Serilog 这个日志记录 ...

  5. MyBatis 原理浅析——基本原理

    前言 MyBatis 是一个被广泛应用的持久化框架.一个简单的使用示例如下所示,先创建会话工厂,然后从会话工厂中打开会话,通过 class 类型和配置生成 Mapper 接口的代理实现,最后使用 Ma ...

  6. Java_基础(二)

    思想 面向过程的思想: 怎么按步骤把问题解决, 并将步骤编程方法, 一步一步事项, 适合简单不需要协作的任务 面向对象的思想: 怎么设计这个事务 区别与联系 都是解决问题的思维方式, 都是代码组织的方 ...

  7. 记一次因python相互导入包的报错

    先丢报错信息:AttributeError:module 'utils.configHttp' has no attribute 'ConfigHttp' 开始以为是导入包的常规问题,上网搜了一下解决 ...

  8. 7、Django之模型层第二篇:多表操作

    一 表关系回顾 在讲解MySQL时,我们提到,把应用程序的所有数据都放在一张表里是极不合理的. 比如我们开发一个员工管理系统,在数据库里只创建一张员工信息表,该表有四个字段:工号.姓名.部门名.部门职 ...

  9. javascript函数式编程基础随笔

    JavaScript 作为一种典型的多范式编程语言,这两年随着React\vue的火热,函数式编程的概念也开始流行起来,lodashJS.folktale等多种开源库都使用了函数式的特性. 一.认识函 ...

  10. centos 新装的常见问题

    1.没有1080分辨率 vi /etc/X11/xorg.conf Section "Monitor" Identifier "Monitor0" Vendor ...