char数组长度c ++ <i'm newcomer =“”>

时间:2015-12-25 15:27:00

标签: c++

我是新人。 我需要输入的大小。

#include <iostream>

using namespace std;
int main()
{

    int a,b,n;
    char c[100];
    cout<<"insert number of adjective :  " ;
    cin>>a;
    for(b=0;b<a;b++)
    {
        cin>>c;
        int length = sizeof(c);
        cout<<length<<endl;
        cout<<c<<endl;
    }
    return 0;
}

请帮我找到尺寸lenght c

哈米德

5 个答案:

答案 0 :(得分:3)

首先,从不(如在从不中)使用std::cin >> array;arraychar数组(或一个指向这种arry开头的指针)除非首先设置了可以通过设置流width()读取的最大数据量。任何教师向您展示如何使用std::cin >> array;而不建议使用width() ,必须更正

您可以,例如,使用

#include <cstring> // NOT <string>...
// ...
char c[100];
std::cin.width(sizeof(c));
if (std::cin >> c) {
    std::size_t n = std::strlen(c);
    // ...
}

将要读取的字符数限制为sizeof(c) - 1-1存在,因为还会读取终止空字符)。成功阅读输入后(您还需要始终检查输入是否实际成功),您可以使用strlen(c)来确定读取的字符数。

就个人而言,我在实际代码中将非常很少格式化的数据读入char数组。我通常只是阅读一个std::string,它使用起来更容易,更安全。我会考虑处理内置数组的输入是一个更高级的主题。

答案 1 :(得分:0)

你可以使用矢量

#include <vector> ...
int n;
cin >> n;
vector<int> vec(n);
...
int size_of_vector = vec.size();
...

答案 2 :(得分:-1)

#include <string>
using namespace std;
int main()
{
	////////////////////input
	int a,b,n,i;
	char c[100];
	cout<<"insert number of adjective :  " ;
	cin>>a;
	for(b=0;b<a;b++)
	{
		cin>>c;
        n = strlen(c) ;
		cout<<n<<endl;
		/////////////////////////processing
		if(c[n]=='r')
		{
		  cout<<"ok";
		}
		/////////////////////////output
		cout<<c<<endl;
	}
	
}

答案 3 :(得分:-3)

此地图有助于此。

/* strlen example */
#include <stdio.h>
#include <string.h>

int main ()
{
  char szInput[256];
  printf ("Enter a sentence: ");
  gets (szInput);
  printf ("The sentence entered is %u characters long.\n",(unsigned)strlen(szInput));
  return 0;
}

答案 4 :(得分:-3)

  1. 首次使用:#include <string>
  2. 第二次写:int length = strlen(c); // insted of int length = sizeof(c);
  3. strlen()函数查找字符串的长度,但必须包含字符串库。