c++,以下代码编译器报错说strcmp函数中参数有问题,解释一下。

供稿:hz-xin.com     日期:2025-01-13
写了一段代码,编译器提示“strcmp”: 不能将参数 1 从“char”转换为“const char *”,解释一下怎么改

strcmp(ch[10][n],id1.name[10])这种改成
strcmp(ch[n],id1.name)

printf("%s:%d",id1.name[10],id1.votes);

改成
printf("%s:%d",id1.name,id1.votes);

#include
#include
#include
using namespace std;
这也太混乱了。

#include
#include
#include
using namespace std;
这是VS2010的写法

#include
#include
#include
这是VC6的写法,你要选择一个,不要混着用啊,呵呵

函数strcmp(s1,s2)的参数s1和s2都是C风格字符串,你的代码里面strcmp(list[i],nominees[j].name)第一个参数list[i]是string类,所以你的程序会报错。

string类提供了一个成员函数c_str(),它的作用就是返回C风格的字符串,以'\0'结束。所以你的程序可以这么改即可:strcmp(list[i].c_str(),nominees[j].name)。



编译错误怎么解决
1、分析原因,这样的错误出现一般是由于服务器拒绝了某一项请求,常见的是写入,所以问题在有表单输入的网页中更容易出现。点击详细编辑器输出,查看具体的原因。我们可以看到有请求被拒绝了,而且具体文件是是C:\\Windows\\Microsoft.NET\\Framework64\\v2.0.50727\\Temporary ASP.NET Files没有权限。在服务器...

还在迷茫strcpy函数不会用吗,今天教你C语言strcpy函数的使用_百度知 ...
(C)检查指针的有效性时使用((strDest==0)||(strSrc==0)),说明答题者不知道使用常量的好处。直接使用字面常量(如本例中的0)会减少程序的可维护性。0虽然简单,但程序中可能出现很多处对指针的检查,万一出现笔误,编译器不能发现,生成的程序内含逻辑错误,很难排除。而使用NULL代替0,如果...

i["str"]语法正确吗
讨论程序语法是否正确,关键在于理解程序执行的逻辑和规则。以示例程序为例,代码中的 `i["12345678"]` 实际上被编译器解释为 `*(i+"12345678")`,等同于 `*(i+12345678)`。此操作违反了C语言的基本规则,即`*`操作符左侧应为指针变量,而非整型变量。整型变量“+”操作符右侧的常量或变量仅表示...

#Rust的&str和String的区别#
并使用push_str方法向其中追加文本。在最后,我们输出了str_slice和string的值,以展示它们之间的区别。需要注意的是,当我们用push_str方法修改String类型的字符串时,这种修改是有效的。然而,如果我们尝试对str_slice进行修改,Rust编译器将会报错,因为str类型是不可变的。

...回答的知友的一个关于C++函数模板的问题,关于代码有两个问题救助_百...
的第二点所说,这可能导致类型的unsafe。3) 如果不想做1),2)的任一种强制转换,只需更改str的类型定义跟形参类型一致即可,如:char* const str[5]={"This","Is", "An","Apple","Pie"}; 这里数组元素为const指针 然后下面调用模板函数的地方就不用进行强制类型转换了。printf("Longest ...

string字符串赋值?
5、其次,string类型的构造函数有:stringstStr=12;\/\/由于12(int型)和constchar*最为接近,而从int到constchar*的转换在默认情况下是不被编译器允许的,所以这里会报错。6、getmassage_sb()函数返回的是一个临时对象吧,赋值语句给这个临时对象赋值了。怎样为一个string数组赋值定义一个String类型的...

c++中c_str()用法,越详细越好。
应该这样用:char c[20];string s="1234";strcpy(c,s.c_str());这样才不会出错,c_str()返回的是一个临时指针,不能对其进行操作。语法: const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.,这是为了与c语言兼容,在c语言中没有string类型,故必须...

下面的代码中的“NULL;”是什么意思?
NULL表示空指针,题中表示具有保留的值。NULL是在计算中具有保留的值,用于指示指针不引用有效对象。程序通常使用空指针来表示条件,例如未知长度列表的结尾或未执行某些操作; 这种空指针的使用可以与可空类型和选项类型中的Nothing值进行比较。空指针不应与未初始化的指针混淆:保证空指针与指向有效对象的...

为什么C++中不能将begin作为变量名?
比如在MSVC中声明一个局部变量 int index;是完全没有问题的,但是...在linux上却不可以,原因是一些实现的string.h标准库自带了这个函数 char* index(const char* s,int c);在一些严格的C\/C++编译器或者中会报错, 一些编译器只会报警告(甚至有些话都不说).所以加一些前缀比较好.比如str_index...

这个c语言代码错哪里了?
编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。{ z=x+y; t=z\/100; printf(“%f”,t); } 对于复合语句来说,最后一个语句中最后的分号不能...