如何使用带字符串的指针?

时间:2016-11-17 13:33:22

标签: c++

我知道我的问题并不具体,但让我解释一下这段代码

char name[5][30];
for (int i = 0; i < 5; i++)
    cin >> name[i];

for (int i = 0; i < 5; i++)
    cout<<name[i];

在上面的示例中,我创建了一个字符数组,您可以在其中输入五个字,每个字长度为30位。它工作得很好,但当我不知道你要输入多少单词时,我尝试使用这样的指针。我在第5行得到一个错误,说int类型的值不能被赋予char,我理解错误但是如何通过这个问题?

int n;
cout << "Number of names" << endl;
cin >> n;
int *name;
name = new char[n][30];
for (int i = 0; i < 5; i++){
    cin >> *name;
    name++;

}

for (int i = 0; i < 5; i++){
    cout << *name;
    name++;
}

1 个答案:

答案 0 :(得分:3)

  • 使用char,而不是int
  • 增加name似乎不太好主意,因为它必须在打印前返回到第一个元素。我使用了数组索引操作符。
  • 我想n输入&amp;应该输出而不是固定的5输入&amp;输出。
    int n;
    cout << "Number of names" << endl;
    cin >> n;
    char (*name)[30];
    name = new char[n][30];
    for (int i = 0; i < n; i++){
        cin >> name[i];

    }

    for (int i = 0; i < n; i++){
        cout << name[i];
    }
    delete[] name;