如果我在C ++中有一个字符数组,这如何工作?

时间:2018-12-07 22:52:43

标签: c++

假设我有一个大小为5的字符数组 和:

char array[5];
for (int i=0;i<5;i++)
{ 
    scanf>>array[i];
}

我作为该程序的用户提供“ hello”作为输入。 \ 0存储在哪里,因为字符数组在C ++中以空值终止?还是我错过了什么?

1 个答案:

答案 0 :(得分:1)

也许您正在混合概念。

  • cin>>是C ++语法,而不是C(对于C语言,您必须使用scanf-或sscanf-,fgets等)
  • C中正确格式化的字符串以空\0结尾,但这并不意味着任何char类型的数组都必须以\0结尾。
  • 世界“ hello”将存储为:

    char array[0] = 'h';
    char array[1] = 'e';
    char array[2] = 'l';
    char array[3] = 'l';
    char array[4] = 'o';
    char array[5] = '\0';
    

因此,您将需要一个大小为6的数组,它是null字符的额外字符。