字符串库函数<string.h>

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

strlen:自动无视结束符

#include <stdio.h>
#include <string.h> int main(int argc, char *argv[]) {
char str1[] = "Trump";
printf("sizeof %d\n", sizeof(str1));
printf("strlen %d\n", strlen(str1));
printf("*******************\n");
char str2[] = "川普";
printf("sizeof %d\n", sizeof(str2));
printf("strlen %d\n", strlen(str2));
return 0;
}

strcpy赋值/复制

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
// 眼见喜、耳听怒、鼻嗅爱、舌尝思、意见欲、身本忧"
char str1[]="眼见喜";
printf("%d\n", sizeof(str1));
printf("%s\n", str1); printf("**strcpy*******************************\n");
strcpy(str1,"耳听怒");
printf("%d\n", sizeof(str1));
printf("%s\n", str1); printf("**strcpy不检测大小是否匹配*******************************\n");
int n1 = 1000;
printf("新变量:%d\n", n1);
strcpy(str1,"鼻嗅爱、舌尝思");
printf("%d\n", sizeof(str1));
printf("%s\n", str1);
printf("新变量:%d\n", n1); // n1被破坏了 return 0;
}

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

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

strcat(Concatenate·连接)

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

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
char str1[]="眼见喜";
printf("sizeof %d\n", sizeof(str1));
printf("strlen %d\n", strlen(str1));
printf("%s\n", str1); printf("**strcat不检测大小是否匹配*******************************\n");
int n1 = 1000;
printf("新变量:%d\n", n1); strcat(str1, "、耳听怒"); printf("新变量:%d\n", n1);// 被破坏
printf("sizeof %d\n", sizeof(str1));
printf("strlen %d\n", strlen(str1));
printf("%s\n", str1); return 0;
}

strcmp判等

str1str1:1

str2str3:0

小于:-1

大于:1

等于:0

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
char str1[200]="a";
char str2[200]="b";
char str3[200]="b";
// 使用==判断是错误的
printf("str1==str1:%d\n", str1==str1);
printf("str2==str3:%d\n", str2==str3);// 判断错误 int nCmp; nCmp = strcmp("a", "b");
printf("小于:%d\n", nCmp); nCmp = strcmp("b", "a");
printf("大于:%d\n", nCmp); nCmp = strcmp(str2, str3);
printf("等于:%d\n", nCmp); return 0;
}

字符串转数字

需要#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. puk1521 赫夫曼树编码

    Description An entropy encoder is a data encoding method that achieves lossless data compression by ...

  2. centos6-增加阿里yum源

    1.获取阿里的yum源覆盖本地官方yum源 wget -O /etc/yum.repos.d/CentOS-ali.repo http://mirrors.aliyun.com/repo/Centos ...

  3. 力扣 - 768. 最多能完成排序的块II

    目录 题目 思路 代码实现 复杂度分析 题目 这个问题和"最多能完成排序的块"相似,但给定数组中的元素可以重复,输入数组最大长度为2000,其中的元素最大为10**8. arr是一 ...

  4. 天啦撸!打印日志竟然只晓得 Log4j?

    空了的时候,我都会在群里偷偷摸摸地潜水,对小伙伴们的一举一动.一言一行筛查诊断.一副班主任的即时感,让我感到非常的快乐,略微夹带一丝丝的枯燥. 这不,我在战国时代读者群里发现了这么一串聊天记录: 竟然 ...

  5. 【SpringCloud】03.微服务的设计原则

    微服务的设计原则: 一.AKF拆分原则 业界对于可扩展的系统架构设计有一个朴素的理念:通过加机器就可以解决容量和可用性问题(如果一台不行就两台). Y轴(功能)--关注应用中功能划分,基于不同的业务拆 ...

  6. C# 集合类(二)

    C# 集合类自己经常用到: 数组(Array).动态数组(ArrayList).列表(List).哈希表(Hashtable).字典(Dictionary),对于经常使用的这些数据结构,做一个总结,便 ...

  7. scjp卡壳题

    1. void looper() { int x = 0; one: while (x < 10) { two: System.out.println(++x); if (x > 3) { ...

  8. 某C++神作,就100句话而已

    假设p是指针,当delete p;时,后面一定要p=NULL将p指向空 cin cout cerr 都是iostream类型的对象.cout<<"hello world" ...

  9. Blazor中的CSS隔离

    1.环境 VS 2019 16.9.0 Preview 1.0 .NET SDK 5.0.100 2.前言 CSS一旦生效,就会应用于全局,所以很容易出现冲突.为了解决这个问题CSS隔离就顺势而生.B ...

  10. PF_PACKET&&tcpdump

    linux下抓包原理 linux下的抓包是通过注册一种虚拟的底层网络协议来完成对网络设备消息的处理权.当网卡接收到一个网络报文之后,它会遍历系统中所有已经注册的网络协议,当抓包模块把自己伪装成一个网络 ...