1)std::stringstream的定义如下:
typedef basic_stringstream<char> stringstream;
它是basic_stringstream模板在char类型上的一个特化,使用该类型需要包含头文件<sstream>.
std::stringstream经常被用来将字符串和各种基本数据类型之间进行转换,功能类似于C标准库中的itoa和atoi函数,但std::stringstream能做的事情更多,我们就从下面这个实例代码来进行学习吧:
#include <iostream>
#include <sstream>
int main()
{
std::stringstream asceStream;
std::string str("234");
//std::string转int
int asce;
asceStream << str; //先将str的值读入asceStream中
asceStream >> asce;//再将asceStream中的值转为int型存入asce中
std::cout<<"std::string转int:"<<asce<<std::endl;
//char*转int
asceStream.clear(); //再次输入前清空之前内容
char* chs = "123";
asceStream << chs;
asceStream >> asce;
std::cout<<"char*转int:"<<asce<<std::endl;
//std::string转double
asceStream.clear();
double asceD;
str = "23.4";
asceStream << str;
asceStream >> asceD;
std::cout<<"std::string转double:"<<asceD<<std::endl;
system("pause");
return 0;
}
2)strstr函数定义如下:
const char *strstr(
const char *str,
const char *strSearch
); // C++ only
它的作用是在字符串str中寻找字符串strSearch第一次出现的位置,如果找到就返回指针,否则返回NULL。
实例代码如下:
#include <iostream>
int main()
{
char str[] = "lazy";
char string[] = "The quick brown dog jumps over the lazy fox";
char *pdest;
int result;
pdest = strstr(string, str);
result = (int)(pdest-string+1);
if(pdest != NULL)
std::cout<<"字符串"<<str<<"在字符串"<<
string<<"中的位置是:"<<result<<std::endl;
else
std::cout<<"找不到字符串"<<str<<std::endl;
system("pause");
return 0;
}
下面我们在来看看strstr函数的一个实现:
#include <iostream>
#include <assert.h>
const char* _strstr(const char* s1, const char* s2)
{
assert(s1 != NULL && s2 != NULL);
const char *p = s1;
const char *r = s2;
int len = 0; //保存字符串s2的长度¨
while(*p != '/0' && *r != '/0')
{
if(*p == *r)
{
len++;
p++;
r++;
} else {
len = 0;
p = ++s1;
r = s2;
}
}
if(*r == '/0')
return p-len; //减去s2长度,得到的是s2在s1第一个字符指针
return NULL;
}
分享到:
相关推荐
#### 一、C++ 的 `std::string` 使用 ##### 1.1 C++ `std::string` 简介 在C++标准库中,`std::string` 类是用于处理文本数据的强大工具。它提供了比传统C风格字符串(`char *`)更多的功能和安全性。`std::string` ...
在C++中,有两种主要的字符串类型:C风格的字符数组(char[])和C++标准库中的std::string类。C风格字符串是以空字符'\0'结尾的字符数组,而std::string提供了一组方便的方法来操作和管理字符串。 1. C风格字符串 -...
`std::string` 可以通过 C++ 的流机制进行输入和输出。 **1.7.1 C++ 流简介** C++ 流是一系列标准的输入/输出操作的封装,可以用于读写文本数据。 **1.7.2 `std::string` 与 `iostream`、`fstream`** `std::...
或者使用C++标准库中的`std::string`类,它提供了更高级别的功能和便利性: ```cpp std::string str = "Hello, World!"; ``` 字符串的比较通常通过`std::strcmp`函数(对于字符数组)或`std::string`的成员函数如`=...
在C++中,`std::string`是用于处理文本数据的标准库的一部分,它提供了丰富的功能来管理和操作字符串。与传统的C风格字符串不同,`std::string`是一个类,它封装了所有关于字符串的操作,如长度计算、连接、子串提取...
MFC库中的`CString`类提供了方便的字符串操作,但在与标准C++库函数交互时,可能需要将其转换为`std::string`或`char*`等类型。本文将详细介绍如何在`CString`、`std::string`、`char*`、`char[]`、`int`和`float`...
首先,C++标准库提供了两个主要的字符串类型:`std::string` 和 C 风格的字符数组(char[])。`std::string` 类型是C++的标准库容器,提供了丰富的成员函数,便于进行字符串操作,而C风格的字符数组则更加原始,需要...
6. **连接操作**:将多个字符串合并成一个,Python中用`+`操作符,如`s1 + " " + s2`,C++中可用`+`或`std::stringstream`。 7. **查找与替换**:查找特定子串在字符串中的位置,Python有`find`或`index`方法,C++...
在C++编程语言中,字符串处理是至关重要的一个部分,涉及到很多函数和方法。这篇总结主要涵盖C++中处理字符串的基本知识点,包括基本概念、常用函数、操作技巧以及一些编程思想。 1. **字符串基本概念** 在C++中,...
C++标准库提供了大量的函数和算法来支持这些操作,如`std::strcmp`进行精确比较,`std::strstr`查找子串,以及`std::transform`和`std::algorithm`进行字符串转换和处理。 此外,字符串在格式化输出和输入中也发挥...
在准备参加蓝桥杯竞赛的过程中,C++编程语言是重要的工具之一,特别是在基础练习题中,字符串对比是一项基本且至关重要的技能。本文将深入探讨C++中的字符串处理和比较,帮助参赛者提升在这个领域的理解与应用能力。...
通过对C语言中的字符串处理技术及其与C++中`std::string`类的对比,我们可以看出,尽管C语言提供了强大的字符串操作功能,但C++的`std::string`类因其便利性和安全性,在现代软件开发中被广泛采用。掌握这两种不同的...
`std::string`是C++标准库中的一个类,它提供了一种方便的方式来存储、操纵和操作字符串。查找和替换操作可以直接通过`std::string`提供的成员函数完成: 1. **查找操作**:可以使用`find`函数来查找子串。例如,...
std::string line; char c; while (std::cin.get(c) && c != '\n') { // 处理字符c } ``` 2. **自定义缓冲区**: 创建一个固定大小的缓冲区来存储输入,然后手动检查回车换行符。如果遇到,可以立即处理,...
4. **C++异常**:C++语言提供了异常处理机制,通过throw和catch关键字来抛出和捕获异常,用于处理程序运行时的非正常情况。 5. **错误处理最佳实践**:如何设计良好的错误处理代码,包括错误码与异常的结合使用,...
3. 输入输出流:C++的IO流库(iostream)引入了`std::cin`、`std::cout` 和 `std::endl` 等对象,提供了面向对象的输入输出方式。 4. 异常处理:`try`、`catch` 和 `throw` 用于捕获和处理程序运行时可能出现的错误...
综上所述,`string`、`CString` 和 `char*` 在 C++ 中扮演着不同的角色。`string` 更适合作为通用字符串处理工具,而 `CString` 主要针对 MFC 和 ATL 环境。`char*` 作为传统 C 风格字符串处理方式,虽然功能有限但...
在C++中,引入了名为`std::string`的类,它提供了更加便捷和安全的字符串操作。在C++中声明一个`string`对象,如`string name;`,可以直接对字符串进行赋值和操作,而无需预先指定长度。 C字符串在初始化时,通常...
- **查找与替换**:`strstr()`用于查找子字符串,`strchr()`找特定字符,`std::string`提供了`find()`和`replace()`方法。 - **分割与合并**:`strtok()`用于按分隔符拆分字符串,`std::getline()`读取一行并去掉...