知识内容:

1.C\C++字符串简述

2.C字符串相关操作

3.C++ string类相关操作

 

 

 

一、C\C++字符串简述

1.C语言字符串

C语言字符串是字符的数组。单字节字符串顺序存放各个字符串,并用'\0'来表示字符串结束。在C语言库函数中,有一系列针对字符串的处理函数,比如说strcpy()、sprintf()、stoi()等,只能用于单字节字符串,当然也有一些函数用于处理Unicode字符串,比如wcscpy()、swprintf()等

 1 //C语言字符串示例 
 2 
 3 #include<stdio.h>
 4 
 5 int main()
 6 {
 7     char s1[20];
 8     scanf("%s", s1);
 9     printf("%s\n", s1); 
10     
11     char s2[] = "Hello, World!";
12     printf("%s\n", s2);
13     
14     return 0;
15 } 

一般遍历C语言字符串有两种方式,一种是根据字符串的大小遍历,另一种是使用指针来遍历字符串,个人推荐使用根据字符串大小来遍历字符串,这样更稳妥。

 1 //C语言字符串遍历示例 - 遍历输出字符串所有字符
 2 #include<stdio.h>
 3 #include<string.h>    //strlen()的头文件 
 4 
 5 int main()
 6 {
 7     char s[] = "Hello, World!"; 
 8     //根据字符串的大小遍历
 9     int i;
10     for(i=0;i<strlen(s);i++) 
11         printf("%c", s[i]);
12     printf("\n");            
13     
14     return 0;
15 } 

 

 

2.C++的string类综述

STL的C++标准程序库中的string类,使用时不必担心内存是否充足、字符串长度等问题,并且C++中的string类作为一个类,其中集成的操作函数(方法)足以完成多数情况下的程序需求,比如说string对象可以用"="进行赋值,使用"=="进行等值比较,使用"+"进行串联。

 

如果要使用C++的string类必须包含头文件,并引入命名空间:

1 #include <string>
2 using namespace std;

 

string对象的输入方式: cin\getline

 1 #include <iostream>
 2 #include <string>
 3 
 4 int main()
 5 {
 6     string s1, s2;
 7     cin >> s1;
 8     getline(cin, s2);
 9 
10     return 0;      
11 }

 

 

 

二、C字符串相关操作

对于C语言的字符串,有以下这些库函数:

atof()

将字符串转换成浮点数

atoi()

将字符串转换成整数

atol()

将字符串转换成长整型数

isalnum()

当字母或数字字符时, 返回真值

isalpha()

当字母字符时, 返回真值

iscntrl()

当控制字符时, 返回真值

isdigit()

当数字字符时, 返回真值

isgraph()

当非空格可打印字符时, 返回真值

islower()

当小写字母字符时, 返回真值

isprint()

当可打印字符时, 返回真值

ispunct()

当标点字符时, 返回真值

isspace()

当空格字符时, 返回真值

isupper()

当大写字母字符时, 返回真值

isxdigit()

当十六进制字符时, 返回真值

memchr()

在某一内存范围中查找一特定字符

memcmp()

比较内存内容

memcpy()

拷贝内存内容

memmove()

拷贝内存内容

memset()

将一段内存空间填入某值

strcat()

连接两个字符串

strchr()

查找某字符在字符串中首次出现的位置

strcmp()

比较两个字符串

strcoll()

采用目前区域的字符排列次序来比较字符串

strcpy()

拷贝字符串

strcspn()

在某字符串中匹配指定字符串

strerror()

返回错误码对应的文本信息

strlen()

返回指定字符串的长度

strncat()

连接某一长度的两个字符串

strncmp()

比较某一长度的两个字符串

strncpy()

复制某一长度的一个字符串到另一字符串中

strpbrk()

查找某字符串在另一字符串中首次出现的位置

strrchr()

查找某字符在字符串中末次出现的位置

strspn()

返回子串的长度,子串的字符都出现包含于另一字符串中

strstr()

在一字符串中查找指定的子串首次出现的位置

strtod()

将字符串转换成浮点数

strtok()

查找指定字符之前的子串

strtol()

将字符串转换成长整型数

strtoul()

将字符串转换成无符号长整型数

strxfrm()

转换子串, 可以用于字符串比较                             

tolower()

将字符转换成小写字符

toupper()

将字符转换成大写字符

以下是上面部分函数的详细解释:

(1)atof()

语法:

#include <stdlib.h>

double atof( const char *str );

功能:将字符串str转换成一个双精度数值并返回结果。 参数str 必须以有效数字开头,但是允许以“E”或“e”除外的任意非数字字符结尾

 1 #include <stdlib.h>
 2 #include <stdio.h>
 3 
 4 int main()
 5 {
 6     char *s = "42.03 is the answer";
 7     double x = atof(s);
 8     printf("%f", x);
 9     
10     return 0;
11 }
atof()用法

 

(2)atoi()

语法:

#include <stdlib.h>

int atoi(const char *str);

功能: 将字符串str转换成一个整数并返回结果。参数str以数字开头,当函数从str中读到非数字字符时则结束转换并将结果返回

 1 #include <stdlib.h>
 2 #include <stdio.h>
 3 
 4 int main()
 5 {
 6     char *s = "32 this is the answer!";
 7       int number = atoi(s);
 8      printf("%d", number);
 9 
10     return 0;
11 }
atoi()用法

相关文章:

  • 2021-04-26
  • 2021-05-18
  • 2021-09-18
  • 2021-07-25
  • 2021-12-16
猜你喜欢
  • 2022-12-23
  • 2021-05-19
  • 2022-12-23
  • 2022-12-23
  • 2022-03-01
  • 2021-12-02
相关资源
相似解决方案