如何处理矢量指针
How to handle the vector pointer?
>处理向量中的指针对我来说是新的
我想比较每个字符是天气",""或不,但找不到它。
#include <sstream>
#include <vector>
#include <iostream>
#include<string>
using namespace std;
void parseInts(string str) {
vector<int> v;
string s;
for (int i=0;i<str.length();i++)
{
if(str[i]!=",")
cout<<str[i];
else
cout<<"n";
}
}
int main() {
string str;
cin >> str;
parseInts(str);
return 0;
}
这是错误 ->
solution.cc:在函数'void parseInts(std::__cxx11::string)'中:
解决方案.cc:12:18:错误:ISO C++禁止指针之间的比较
和整数 [-允许] if(str[i]!=",")
您面临的问题是您无法将const char*
与char
进行比较。因此,要解决此问题,您应该将,
括在单引号中,这意味着char
而不是双引号,因为这意味着const char*
这是指向双引号中第一个字符的指针。请参阅下面的修复程序。
void parseInts(string str) {
vector<int> v; // What do you mean by this? It's unused. You can' remove it.
string s;
for (int i=0;i<str.length();i++)
{
if(str[i]!=',') // Should be single quotes and not double quotes
cout<<str[i];
else
cout<<"n";
}
}
编译器会给你一个非常详细的警告:
与字符串文本的警告比较会导致未指定的行为 [-Waddress] 使用 -Wall
标志进行编译时if(str[i]!=",")
在本例中为字符串文本","
通过更改str[i]
(这是一个char
)和逗号字符之间的比较char comma = ','
编译的代码,并在执行时返回带有测试输入foonbar
foo,bar
...
char comma = ',';
for (unsigned int i = 0; i < str.length(); i++)
{
// previously str[i] != ",";
if(str[i] != comma)
cout<<str[i];
else
cout<<"n";
}
...
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在自定义 std::vector-like 容器中处理指针和非指针模板类型的最佳方法是什么?
- 如何在 c++ 中处理 LinkedList 的指针
- C++在一个映射中存储不同的指针类型(并处理销毁)
- 处理从列表中删除指向对象的指针的"healthy"方法是什么?
- C 与 C++,处理 void** 指针
- OpenCV如何处理Mat作为指针来加速代码
- 在C++中使用指针进行字符串处理
- delete运算符如何处理c中的指针
- 指针向量的向量的处理元素
- 在同时处理基类的多个指针时如何处理多态性?
- 处理 pybind11 中的不透明指针
- 为什么Arduino对Mega 2560和ESP8266的角色指针处理有两种不同的行为
- 识别指针处理方式中的错误
- 使用指针处理结构的动态表
- 使用指针指向指针处理 C 中的结构数组
- 使用指针处理字符串
- C++指针处理
- ARM体系结构中的指针处理和Valgrind方法
- 如何在C++中通过指针处理3d数组