【问题标题】:How to fix 'cannot convert char to char*' error in C++?如何修复 C++ 中的“无法将 char 转换为 char*”错误?
【发布时间】:2019-06-25 18:09:11
【问题描述】:

我正在尝试使用指针反转字符串,我猜这是一个非常标准的程序。

我尝试使用单个指针来执行此操作,这与我见过的人们使用两个指针作为开始和结束的其他方法不同。

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
void main()
{
 clrscr();
 char x[15];
 cout<<"enter word";
 gets(x);
 int l=strlen(x);
 char* p;
 p=x[15];
 for(int i=l-1;i>=0;i++)
 {
  p*=x[i];
  p--;
 }
 puts(x);
 getch();
}

我希望它可以工作,但它显示了一个错误,即它无法将 char* 转换为 char。我对指针很陌生,但我认为指针只是内存位置的别名,那么问题是什么?还是我错过了一些基本的东西?

【问题讨论】:

  • 我很好奇你对p*=x[i];的期望是什么?
  • “尝试使用指针反转字符串,我猜这是一个非常标准的程序” - 不是真的。我想说使用std::stringstd::reverse 将是标准的东西..
  • #include&lt;iostream.h&gt; 感觉就像时光倒流了 3 年。
  • @Eljay 很好。我已经适当地更改了标签。

标签: c++ pointers turbo-c++


【解决方案1】:

将星号放在 p 之前以取消引用它。

*p=x[i];

此外,当您分配p = x[15] 时,您将取消引用x(使其成为char)并将其分配给p(即char*)。

【讨论】:

  • 这是一个问题,但不是这里要问的问题。
猜你喜欢
  • 2022-01-10
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 2020-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多