【问题标题】:How to assign a string to char variable? [duplicate]如何将字符串分配给 char 变量? [复制]
【发布时间】:2020-02-27 06:46:50
【问题描述】:

我想知道如何分配像“Hello World!”这样的字符串。到一个 char 变量。

例子:

#include <iostream>

int main() {
  char *input = "none";
  std::cout << "Welcome to Example\n";
  std::cout << "Type: ";
  std::cin >> input;
  std::cout << input;
  return 0;
}

这怎么行不通?

它没有显示错误,但没有打印输入。

【问题讨论】:

  • 也许......只是不要。使用std::string 并为自己省去许多使用原始指针所固有的丑陋问题。
  • 输入没有分配内存。试试char* input = new char[256],如果你想输入多个单词,你必须执行std::cin.getline(string, size);

标签: c++ string variables char


【解决方案1】:

您需要为 char 数组分配内存,例如:

#include <iomanip>
#include <iostream>

int main() {
    const size_t BUFFER_SIZE = 1024;
    char input[BUFFER_SIZE];
    std::cout << "Welcome to Example\n";
    std::cout << "Type: ";
    std::cin >> std::setw(BUFFER_SIZE) >> input;
    std::cout << input << std::endl;
}

或者你可以像这样动态分配内存:

char *input = new char[BUFFER_SIZE];

并在最后删除:

delete[] input;

但如果你使用 C++,使用std::string 会更简单,例如:

#include <iostream>
#include <string>

int main(){
    std::string input;
    std::cin >> input;
    std::cout << input << "\n";
    return 0;
}

【讨论】:

    猜你喜欢
    • 2011-09-05
    • 2013-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    相关资源
    最近更新 更多