c++比较getline字符串
时间: 2023-10-16 10:30:51 浏览: 40
在 C++ 中,可以使用 `getline()` 函数来比较两个字符串。
下面是一个示例代码,演示了如何使用 `getline()` 函数进行字符串比较:
```c++
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
string str1, str2;
getline(cin, str1);
getline(cin, str2);
if(str1 == str2)
cout<<"两个字符串相等"<<endl;
else if(str1 > str2)
cout<<str1<<" 大于 "<<str2<<endl;
else
cout<<str1<<" 小于 "<<str2<<endl;
return 0;
}
```
在上面的代码中,我们使用 `getline()` 函数从 `cin` 中读取两个字符串,并将它们存储在 `str1` 和 `str2` 中。然后我们使用 `==`、`>` 和 `<` 运算符来比较这两个字符串。
注意,使用 `getline()` 函数时,它会读取整行输入,包括空格和制表符。如果您只想读取单个单词或一个字符,在这种情况下,您可以使用 `cin` 函数来读取。
相关问题
C++字符串函数getline
C++字符串函数getline有两种形式。第一种是iostream类的成员函数,在头文件<istream>中。第二种是普通函数,在头文件<string>中。
第一种形式的函数原型是:
istream& getline(istream& is, string& str, char delim);
第二种形式的函数原型也是这样:
istream& getline(istream&& is, string& str, char delim);
istream& getline(istream& is, string& str);
istream& getline(istream&& is, string& str);
其中,is是输入流对象,str是存储读取的字符串的变量,delim是定界符,用来指定分割字符串的字符。
对于第二种形式的getline函数,可以使用istringstream来将输入的字符串按照指定的定界符进行分割。以下是一个示例代码:
```cpp
#include <string>
#include <sstream>
#include <vector>
vector<string> split(string& folder) {
stringstream s(folder);
string curLayer;
vector<string> result;
while (getline(s, curLayer, '/')) {
result.push_back(curLayer);
}
return result;
}
```
这段代码将输入的字符串按照"/"进行分割,并将分割后的结果存储在一个vector<string>中。
总结来说,C++的字符串函数getline可以用于从输入流中读取字符串,并按照指定的定界符进行分割。
C++中如何提取getline字符串中的元素
在 C 语言中,可以使用 strtok 函数提取 getline 字符串中的元素。具体步骤如下:
1. 定义一个 char 类型的指针变量 ptr ,并使用 getline 函数读取字符串。
2. 使用 strtok 函数将字符串按照指定的分隔符(例如空格、逗号等)分成若干个部分,并将每个部分的起始地址依次存放在指针数组中。
3. 在每次使用 strtok 函数时,需要传入 NULL 作为参数,以便函数能够识别之前已经分割过的字符串,并在下一次分割时从上一次分割结束的位置开始。
4. 将每个部分(即指针数组中的元素)转换为需要的数据类型。
下面是一个示例程序,演示了如何使用 strtok 函数提取 getline 字符串中的元素:
```
#include <stdio.h>
#include <string.h>
int main()
{
char *line = NULL;
size_t len = 0;
ssize_t read;
printf("Enter a line of text: ");
read = getline(&line, &len, stdin);
if (read != -1)
{
char *ptr;
const char *delimiter = " ";
char *tokens[10]; // 最多分割出 10 个部分
int i = 0;
ptr = strtok(line, delimiter);
while (ptr != NULL) {
tokens[i++] = ptr;
ptr = strtok(NULL, delimiter);
}
// 输出分割后的字符串
printf("\nTokens:\n");
for (int j = 0; j < i; j++) {
printf("%d: %s\n", j, tokens[j]);
}
// 将部分转换为整数
int num = atoi(tokens[0]);
printf("\nFirst element as integer: %d\n", num);
}
free(line);
return 0;
}
```
在该程序中,我们首先使用 getline 函数读取用户输入的字符串,然后调用 strtok 函数将字符串按照空格分割成若干个部分,并将每个部分的起始地址存放在 tokens 数组中。最后,将 tokens 数组中的第一个部分转换为整数并输出。