C++笔记(3)——string.h相关的一些小知识
strlen()
用于得到字符数组中第一个\0
前的字符的个数,格式如下:
strlen(数组);
例子:
#include <stdio.h>
#include <string.h>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 <stdio.h>
#include <string.h> 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;
}
上图中前两行是输入,最后一行是输出。
strcpy()
复制字符串给另一个字符串,用法:strcpy(str1, str2)
。这样会把str2
内容复制到str1
。
示例:
#include <stdio.h>
#include <string.h> int main(){char str1[50], str2[50];gets(str1);gets(str2);strcpy(str1, str2);puts(str1);return 0;
}
strcat()
拼接两个字符串,strcat(str1, str2)
,
#include <stdio.h>
#include <string.h>int main(){char str1[50], str2[50];gets(str1);gets(str2);strcat(str1, str2);puts(str1);return 0;
}
sscanf与sprintf
sscanf
与sprintf
是专门用于处理字符串的,可以理解为“string + scanf”和“string + printf”。
用法就类似于在内存上以scanf
和printf
的方式将数据进行传递。举个例子,sscanf(str, "%d", &n);
,这就是将str中内容以%d
的格式写入到n中(可以这样理解,scanf(screen, "%d", &n);
相当于是从screen屏幕捕获输入并输入到n中,从左到右,而sscanf
起到的作用就差不多这样,从str按照"%d"
的格式输入到n。sprintf
则反过来,从右往左)。
比较简单,直接上示例:
#include <stdio.h>int main() {int n;char str[100] = "123";sscanf(str, "%d", &n);printf("%d\n", n);return 0;
}
#include <stdio.h>int main(){int n = 233;char str[100];sprintf(str, "%d", n);printf("%s\n", str);return 0;
}
复杂点的例子:
#include <stdio.h>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;
}
在字符串处理的时候相当有用。
转载于:https://www.cnblogs.com/yejianying/p/cpp_notes_3.html
C++笔记(3)——string.h相关的一些小知识相关推荐
- c语言gets函数头文件string.h,string函数头文件
string.h头文件中有什么函数 string.h头文件中的函数: #include //STL 通用算法 #include //STL 位集容器 #include //复数类 #include / ...
- C\C++中头文件string与string.h的区别
http://www.cnblogs.com/Cmpl/archive/2012/01/01/2309710.html 在C++中,#include<iostream>与#include& ...
- 头文件cstring、string、string.h的区别
头文件cstring.string.string.h的区别 <string>是C++标准库头文件,使用stirng类型必须首先包含string头文件,用于字符串操作,string类型可以进 ...
- c语言标准库详解(七):字符串函数string.h
c语言标准库详解(七):字符串函数<string.h> 头文件<string.h>中定义了两组字符串函数.第一组函数的名字以 str 开头:第二组函数的名字以 mem 开头.除 ...
- C语言字符串头文件string.h中的strlen,strcat,strcpy,strncpy,strcmp,strlwr,strupr函数
前言 本博文内容基于VC6.0++, 2.本博文主要介绍包含在string.h中的几个字符串相关的函数: strlen(字符串数组名) 字符串有效长度函数: 返回值:整型 功能:用来测量一个字符串的有 ...
- 【C#学习笔记】string.Format对C#字符串格式化
https://www.cnblogs.com/nanwei/p/7722294.html [C#学习笔记]string.Format对C#字符串格式化 文章转自:CSDN http://blog ...
- Linux C编程--string.h函数解析
函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio. ...
- string.h 的实现
最近很是烦躁,没做什么事,随便花了点时间把 C 库中的 string.h 中的几个函数实现了下,不多说了,直接贴代码吧,可能会存在错误和不好的算法,希望大家见谅: 测试函数写的乱七八糟,就不贴在这里了 ...
- C语言 string.h 中函数的实现
最近是校招很热的季节,实验室里讨论最多的也就是算法,面试和笔试的必备知识储备.昨天想起 C 语言中 string.h 中的函数在操作字符串时很方便,所以,就想起写写那些函数. ...
最新文章
- 视觉与机械手标定系统技术解决方案
- Extjs 格式化---Ext.util.Format类
- Spartan-6的SelectIO资源
- Pytorch实现基本循环神经网络RNN (3)
- oracle ora 47306,Oracle SQL提示含义与示例 --- 分布式查询和并行提示
- access集团和abm_abm展示硬核实力,ACCESS集团携8大国际品牌在进博会首秀!
- iOS中的 深拷贝和浅拷贝
- idea maven repositories为空
- c语言中为什么无法输入文件,Devc写C语言时无法输入文件内容
- 计算机操作系统面试题库和答案
- VS2010序列号正式版附破解方法详细攻略
- 纯css实现各种箭头图片效果
- ARM ADS中的AXD 调试经验集锦
- 2进制 , 8进制 , 10进制 , 16进制 , 介绍 及 相互转换 及 快速转换的方法
- MATLAB绘制B样条曲线
- java学习总结之集合框架
- 7-3 sdust-Java-字符串集合求并集 (25 分)
- 吴雪筠校友报告会 --职场仪表—心态—自强之道
- mpvue微信小程序中使用svg图标,并通过代码动态改变图标颜色
- 常见互联网公司职级和薪资一览!有条件的一定要进大厂,薪水是真高!
热门文章
- 【C++grammar】文件I/O流的基本用法
- leetcode 322. 零钱兑换 思考分析
- 二叉树笔记(深度遍历与广度遍历+13道leetcode题目(深度3道、广度10道))
- AAS的完整形式是什么?
- scala字符替换_如何替换Scala中的“坏”字符?
- python---Socket编程
- java项目 建文件夹_java创建文件夹
- 关联查询数据重复怎么办_在设计数据表的时候,是一个宽表好,还是多个维度表好?...
- pandas 根据单号分类_由 “猫捉老鼠”游戏联想的用户分类问题
- 汉诺塔V - ACM解决方法