...invalid conversion from `const char*' to `char'
发布网友
发布时间:2024-10-20 09:01
我来回答
共4个回答
热心网友
时间:2024-11-14 16:00
你的程序我调试了一下:
c语言不支持这样的直接给字符串赋值的处理,除非是定义时初始化,
必须使用字符串处理函数;比如说*e="one";必须改成strcpy(e,"one");这样修改之后还要添加一个头文件#include<string.h>因为strcpy是包含在string.h里的;
这样修改之后,运行就可以了
如果直接把*e改成e是不行的,输出会是乱码因为e是一个指针变量,不能那样赋值
不知道我的回答楼主是否满意,如果有更好的解决方法,希望指教,我也在学c,我们可以互相探讨下
热心网友
时间:2024-11-14 16:00
void swap(int n,char *e)
改为void swap(int n,char e)
或者void swap(int n,char **e)
试试
热心网友
时间:2024-11-14 15:55
看来你对字符串和指针并不是很理解。就你的代码简要介绍一下。
e : 指向字符串的指针。
*e : e指针指的字符串的第一个字符,即*e是一个字符。
“\0” : 这个其实倒没什么问题,只是用双引号时,“\0”所代表的是一个常量字符串。
"one" : 这个没问题,就是常量字符串。
对于常量字符串,应该用const char*类型的指针来引用。
程序修改:
void numToStr (int num, const char* str) {
switch (num) {
case 0 : str = "\0"; break;
case 1 : str = "one"; break;
//**********
}
}
热心网友
时间:2024-11-14 16:00
把*e=...改成e=...就行了。