2015-10-05 152 views
0

如何使用正确的代码将输入数组与字符串进行比较?将输入数组与字符串进行比较

#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); 
    } 

我使用的开发-C++,且误差在这条线:

w=strcmp(nama[i],user) 

有谁知道如何解决这一问题?

+5

你想创建五根弦?你认为'cin >>用户[30];'是做什么的?而你的'for'循环没有意义。基本上,大部分代码没有意义,没有评论,我们无法知道它应该做什么。 –

+0

这是一个真实的代码和错误的真实位置?什么是错误? – Petr

回答

0
`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); 
    } 
} 
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,但它是很好的学习如何编写一个循环,并自己做的事情太多。

+0

好的谢谢老兄。 –

相关问题