【发布时间】:2022-01-22 09:45:04
【问题描述】:
所以我的问题如下,我试图传递一个字符串数组并试图找到一个特定的字符串,但由于某种原因,编译器给了我这个错误,我没有得到它,因为我清楚地将一个字符串数组传递到函数。
程序:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
int find_uid(char* users[],char* uid)
{
for (int i=0;i<32;i++)
{
if (strcmp(users[i],uid) == 0)
return 1;
}
return 0;
}
char users[32][6];
int main()
{
char* user;
user = new char[6];
strcpy(user,"10014");
strcpy(users[6],user);
printf("Result %d",find_uid(users,"10014"))
}
【问题讨论】:
-
注意 - 我已经删除了 [c] 标签,因为
new的存在表明您正在尝试用 C++ 编写(尽管使用类似 C 的编码风格);这是两种不同的语言 -
既然可以用脚走路,为什么还要用手走路?使用
std::vector<std::string>。 -
10014不适合char[5],您需要为尾随'\0'留出空间 -
“因为我清楚地传递了一个字符串数组......”不,你没有。
标签: c++ multidimensional-array c-strings implicit-conversion incompatibletypeerror