将输入数组与字符串进行比较
Posted
技术标签:
【中文标题】将输入数组与字符串进行比较【英文标题】:Compare an input array with string 【发布时间】:2015-10-05 08:09:43 【问题描述】:如何使用正确的代码来比较输入数组和字符串?
#include<iostream>
#include<cstring>
#include<stdlib.h>
using namespace std;
int main()
char user[30] ;
string nama[5]="ali33,abu123,ahmad456,kasim123,rahmat123";
int w,i ;
cout<<"username : ";
cin>>user[30];
for(i=0;i>=0;++i)
w=strcmp(nama[i],user);
我使用的是Dev-C++,错误就在这一行:
w=strcmp(nama[i],user)
有谁知道如何解决这个问题?
【问题讨论】:
您是否要创建五个字符串?你认为cin>>user[30];
做了什么?而您的 for
循环毫无意义。基本上,你的大部分代码没有意义,而且没有 cmets,我们无法知道它应该做什么。
这是一个真实的代码和一个真实的错误位置吗?什么是错误?
【参考方案1】:
我建议你研究这个:
std::vector<string> nama = "ali33", "abu123", "ahmad456",
"kasim123", "rahmat123" ;
string user;
cout << "username : ";
int w = -1;
if (cin >> user)
for(int i = 0; i < nama.size(); ++i)
if (nama[i] == user)
w = i;
if (w != -1)
std::cout << user << " found at [" << w << "]\n";
else
std::cout << user " not found\n";
注意:在您了解差异之前,请使用 std::vector
而不是数组,而对于任何文本,请使用 std::string
。您可以使用 C++ 标准库函数 std::find()
来查看 user
值是否出现在 nama
中,但是学习如何编写循环并自己动手也是很好的。
【讨论】:
【参考方案2】:`strcmp()`**is used when comparing c-string data types. Convert your char data type to string and use compare function as illustrated below**`
int main()
char user[30];
string nama[5] = "ali33","abu123","ahmad456","kasim123","rahmat123" ;
int w = -99;
int i;
cout << "username : ";
cin >> user[30];
string temp(user);
for (i = 0; i < 5; i++)
w = nama[i].compare(temp);
【讨论】:
以上是关于将输入数组与字符串进行比较的主要内容,如果未能解决你的问题,请参考以下文章
如何拆分字符串数组,然后将该拆分数组的每个第一个索引与字符进行比较?