博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++笔记(3)——string.h相关的一些小知识
阅读量:6251 次
发布时间:2019-06-22

本文共 1916 字,大约阅读时间需要 6 分钟。

strlen()

用于得到字符数组中第一个\0前的字符的个数,格式如下:

strlen(数组);

例子:

#include 
#include
int main(){ char str[10]; gets(str); int len = strlen(str); printf("%d\n", len); return 0;}

输入:

ababab

输出:

6

strcmp()

用于比较字符串大小,比较原则是按照字典序:

strcmp(字符数组1, 字符数组2)

如果数组1长则返回正数,数组2长则返回负数,相等返回0。

#include 
#include
int main(){ char str1[50], str2[50]; gets(str1); gets(str2); int cmp = strcmp(str1, str2); if(cmp < 0) printf("str1 < str2\n"); else if (cmp > 0) printf("str1 > str2\n"); else printf("str1 == str2\n"); return 0;}

1472587-20190615203420107-1383924487.png

上图中前两行是输入,最后一行是输出。

strcpy()

复制字符串给另一个字符串,用法:strcpy(str1, str2)。这样会把str2内容复制到str1

示例:

#include 
#include
int main(){ char str1[50], str2[50]; gets(str1); gets(str2); strcpy(str1, str2); puts(str1); return 0;}

1472587-20190615203636916-1108250751.png

strcat()

拼接两个字符串,strcat(str1, str2)

#include 
#include
int main(){ char str1[50], str2[50]; gets(str1); gets(str2); strcat(str1, str2); puts(str1); return 0;}

1472587-20190615203903077-559016588.png

sscanf与sprintf

sscanfsprintf是专门用于处理字符串的,可以理解为“string + scanf”和“string + printf”。

用法就类似于在内存上以scanfprintf的方式将数据进行传递。举个例子,sscanf(str, "%d", &n);,这就是将str中内容以%d的格式写入到n中(可以这样理解,scanf(screen, "%d", &n);相当于是从screen屏幕捕获输入并输入到n中,从左到右,而sscanf起到的作用就差不多这样,从str按照"%d"的格式输入到n。sprintf则反过来,从右往左)。

比较简单,直接上示例:

#include 
int main() { int n; char str[100] = "123"; sscanf(str, "%d", &n); printf("%d\n", n); return 0;}

1472587-20190616011253693-2085999357.png

#include 
int main(){ int n = 233; char str[100]; sprintf(str, "%d", n); printf("%s\n", str); return 0;}

1472587-20190616113324975-2036013757.png

复杂点的例子:

#include 
int main(){ int n; double db; char str[100] = "2048:3.14, hello", str2[100]; sscanf(str, "%d:%lf, %s", &n, &db, str2); printf("n = %d, db = %.2f, str2 = %s\n", n, db, str2); return 0;}

1472587-20190616113652320-1552562625.png

在字符串处理的时候相当有用。

转载于:https://www.cnblogs.com/yejianying/p/cpp_notes_3.html

你可能感兴趣的文章
基于敏捷的测试交付物通用设计
查看>>
BFS --- 素数环
查看>>
for循环每次取出一个字符(不是字节)
查看>>
linux版本选择
查看>>
不写for也能选中checkbox!
查看>>
PCIE_DMA:xapp1052学习笔记
查看>>
css
查看>>
Java规则引擎及JSR-94[转]
查看>>
【c学习-13】
查看>>
给报表增加页眉
查看>>
Mysql配置参数说明
查看>>
python ----字符串基础练习题30道
查看>>
K 班1-7,alpha,beta 作业成绩汇总
查看>>
uva-10879-因数分解
查看>>
清空表且自增的id重新从0开始
查看>>
[杂记]如何在LaTeX里插入高亮代码
查看>>
「常微分方程」(阿諾爾德) Page 6 問題4 經過擴張相空間的每一點有且僅有一條積分曲線...
查看>>
同一个闭区间上有界变差函数的和与积都是有界变差函数
查看>>
java安全证书配置
查看>>
使用erlang 建立一个自动化的灌溉系统(1)准备工作
查看>>