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

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 <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相关的一些小知识相关推荐

  1. c语言gets函数头文件string.h,string函数头文件

    string.h头文件中有什么函数 string.h头文件中的函数: #include //STL 通用算法 #include //STL 位集容器 #include //复数类 #include / ...

  2. C\C++中头文件string与string.h的区别

    http://www.cnblogs.com/Cmpl/archive/2012/01/01/2309710.html 在C++中,#include<iostream>与#include& ...

  3. 头文件cstring、string、string.h的区别

    头文件cstring.string.string.h的区别 <string>是C++标准库头文件,使用stirng类型必须首先包含string头文件,用于字符串操作,string类型可以进 ...

  4. c语言标准库详解(七):字符串函数string.h

    c语言标准库详解(七):字符串函数<string.h> 头文件<string.h>中定义了两组字符串函数.第一组函数的名字以 str 开头:第二组函数的名字以 mem 开头.除 ...

  5. C语言字符串头文件string.h中的strlen,strcat,strcpy,strncpy,strcmp,strlwr,strupr函数

    前言 本博文内容基于VC6.0++, 2.本博文主要介绍包含在string.h中的几个字符串相关的函数: strlen(字符串数组名) 字符串有效长度函数: 返回值:整型 功能:用来测量一个字符串的有 ...

  6. 【C#学习笔记】string.Format对C#字符串格式化

    https://www.cnblogs.com/nanwei/p/7722294.html [C#学习笔记]string.Format对C#字符串格式化 文章转自:CSDN   http://blog ...

  7. Linux C编程--string.h函数解析

    函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio. ...

  8. string.h 的实现

    最近很是烦躁,没做什么事,随便花了点时间把 C 库中的 string.h 中的几个函数实现了下,不多说了,直接贴代码吧,可能会存在错误和不好的算法,希望大家见谅: 测试函数写的乱七八糟,就不贴在这里了 ...

  9. C语言 string.h 中函数的实现

            最近是校招很热的季节,实验室里讨论最多的也就是算法,面试和笔试的必备知识储备.昨天想起 C 语言中 string.h 中的函数在操作字符串时很方便,所以,就想起写写那些函数.     ...

最新文章

  1. 视觉与机械手标定系统技术解决方案
  2. Extjs 格式化---Ext.util.Format类
  3. Spartan-6的SelectIO资源
  4. Pytorch实现基本循环神经网络RNN (3)
  5. oracle ora 47306,Oracle SQL提示含义与示例 --- 分布式查询和并行提示
  6. access集团和abm_abm展示硬核实力,ACCESS集团携8大国际品牌在进博会首秀!
  7. iOS中的 深拷贝和浅拷贝
  8. idea maven repositories为空
  9. c语言中为什么无法输入文件,Devc写C语言时无法输入文件内容
  10. 计算机操作系统面试题库和答案
  11. VS2010序列号正式版附破解方法详细攻略
  12. 纯css实现各种箭头图片效果
  13. ARM ADS中的AXD 调试经验集锦
  14. 2进制 , 8进制 , 10进制 , 16进制 , 介绍 及 相互转换 及 快速转换的方法
  15. MATLAB绘制B样条曲线
  16. java学习总结之集合框架
  17. 7-3 sdust-Java-字符串集合求并集 (25 分)
  18. 吴雪筠校友报告会 --职场仪表—心态—自强之道
  19. mpvue微信小程序中使用svg图标,并通过代码动态改变图标颜色
  20. 常见互联网公司职级和薪资一览!有条件的一定要进大厂,薪水是真高!

热门文章

  1. 【C++grammar】文件I/O流的基本用法
  2. leetcode 322. 零钱兑换 思考分析
  3. 二叉树笔记(深度遍历与广度遍历+13道leetcode题目(深度3道、广度10道))
  4. AAS的完整形式是什么?
  5. scala字符替换_如何替换Scala中的“坏”字符?
  6. python---Socket编程
  7. java项目 建文件夹_java创建文件夹
  8. 关联查询数据重复怎么办_在设计数据表的时候,是一个宽表好,还是多个维度表好?...
  9. pandas 根据单号分类_由 “猫捉老鼠”游戏联想的用户分类问题
  10. 汉诺塔V - ACM解决方法