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

问题描述 投票:-1回答:1

假设我有一个大小为5的char数组,并且:

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

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

c++
1个回答
1
投票

也许你是混合概念。

  • cin>>is C ++语法,而不是C(对于C,你必须使用scanf -or sscanf - ,fgets等)
  • C中正确格式化的字符串以null \0结尾,但这并不意味着char类型的任何数组都必须以\0结尾。
  • 世界“你好”将被存储为: char array[0] = 'h'; char array[1] = 'e'; char array[2] = 'l'; char array[3] = 'l'; char array[4] = 'o'; char array[5] = '\0';

所以你需要一个size = 6的数组,作为null字符的额外char。

© www.soinside.com 2019 - 2024. All rights reserved.