初始化字符*

时间:2018-06-11 12:05:27

标签: c++ string char

我试图使用动态内存分配声明char *然后用一串字符初始化它,但我一直收到这个错误......

错误讯息:

  

类型" const char *"的值不能用于初始化类型" int *"

的实体

代码:

void main() {
    char *alphabet = new char();
    alphabet = "abcdefghijklmnopqrstuvwxyz";
    cout << alphabet;

    system("pause");
}


我理解这个

void main() {
    char *alphabet = new char();
    cin.getline(alphabet, 255);
    cout << alphabet;

    system("pause");    
}

会有效,但我不明白为什么我无法在没有用户输入的情况下对其进行初始化;

1 个答案:

答案 0 :(得分:0)

你的问题不好。但我仍然提出一个问题。你可以尝试如下:

#include<iostream>

using namespace std;
void showAlphabetArray(char*alp)
{
  for(int i=0;i<26;i++)
  {
    cout<<alp[i];
  }
}
int main() {
  //declare and init `char` array
  char *alphabet = new char[26];
  //init value
  for(int i=0;i<26;i++)
  {
      alphabet[i] = i + 97;
  }
  showAlphabetArray(alphabet);
  system("pause");    
}

您应该引用ASCII https://en.wikipedia.org/wiki/ASCII