2014-07-09 6 views
0

문자 배열이 있는데 그 안에 내용의 개수를 찾고 싶습니다. 예를 들어, 내 배열은 다음과 같습니다배열의 내용 수를 찾으려고합니다.

char myArray[10]; 

입력 후 그것의 내용은 다음과 같습니다

ABC 

가 지금은 변수 '크기', 내용과 관련 영역의 크기에 저장할. 따라서이 경우 :

size = 3 

어떻게 찾을 수 있습니까?

+5

'std :: string' 또는'std :: vector'와'size()'함수를 원하는 것처럼 들립니다. – chris

답변

3

이 이미 C-기능 strlen 당신을 위해 구현 된 널 종료 문자 \0 찾는 것이이 일의 순진한 방법, 그래서이 일을 두 가지 방법이 있습니다 :

int StringLength(const char* str, int maxLength) 
{ 
    for(int i = 0; i < maxLength; ++i) 
    { 
      if(str[i] == '\0') 
       return i; 
    } 

    return -1; 
} 

또는 다음과 같이 당신은 strlen를 호출 할 수 있습니다

int iLength = strlen(myArray); 

을 그러나 당신이 , 전자를 사용하는 대신 C 스타일의 문자 배열을 처리하지 않는 것이 작업을 수행하고 가장 좋은 방법 태그 것처럼, xtremely 유용한 std::string 클래스입니다.

1

strlen(myArray)은 원하는 것입니다.

0

이 시도 :

INT 렌 =의 나 strlen (myArray의 참조).

strlen은 stdlib.h 라이브러리의 일부입니다. 프로그램에서 선언하는 것을 잊지 마십시오.

+0

C++ =>''및'std :: strlen()';) – Quentin

0

배열을 char myArray[10];으로 정의하는 것이 항상 0으로 초기화되지는 않으므로 ABC로 채우는 방법에 따라 핵심 길이를 찾을 수 있거나 찾을 수 없게됩니다. 최악의 경우 정규 strlen()은 항상 숫자> 10을보고하거나 심지어 읽기 액세스 바이어 레이션을 발생시킵니다. char myArray[10] = {};처럼 초기화 해 봅니다.