2014-04-25 1 views
-2

나는 C#에서 문자열의 총 길이를 찾는 코드를 작성하고 있습니다.C# : 미리 정의 된 함수가없는 문자열 길이

class Program 
    { 
     static void Main(string[] args) 
     { 
      string str = "Amit Kumar"; 
      int c = 0; 
      for(int i = 0; str[i]!="\n"; i++) 
      { 

       c++; 
      } 
      Console.WriteLine(c); 
      Console.ReadLine(); 
     } 
    } 

를 수행하지만 을 나타내는 코드로서 ! = 연산자 문자 또는 문자열 타입 피연산자에 적용 할 수 없다. 내 문제를 해결할 수 있습니까

+0

문제는 당신이 "\ n"및 "\ n"문자열이 아니라는 것을 의미합니다. 또한 str.Length도 작동합니다. –

+0

미리 정의 된 함수를 사용하고 싶지 않습니다. (이미 내 제목에 언급되어 있음) –

+2

string.Length는 함수가 아닙니다. –

답변

5

오류에 명시된대로 !=을 사용하여 문자열을 char과 비교할 수 없습니다. 대신 '\n'을 사용하십시오. 하지만 어쨌든, 당신의 문자열은 개행 문자를 포함하지 않으며 절대로 종료되지 않습니다.

일부 수정 작업을 통해 코드를 작동시킬 수 있습니다. 문자열의 문자를 반복하려면 foreach을 사용하십시오. 당신에게 문자열의 길이를 알려 built in functions을 거기로

class Program 
    { 
     static void Main(string[] args) 
     { 
      string str = "Amit Kumar"; 
      int c = 0; 
      foreach(char x in str) 
      { 
       c++; 
      } 
      Console.WriteLine(c); 
      Console.ReadLine(); 
     } 
    } 

나는이 그냥 교육을 바랍니다.

class Program 
    { 
     static void Main(string[] args) 
     { 
      string str = "Amit Kumar"; 
      int c = 0; 
      foreach(char x in str) 
      { 
       if (str[i] != '\n') 
        c++; 
      } 
      Console.WriteLine(c); 
      Console.ReadLine(); 
     } 
    } 
1

는이 코드가 필요합니다 삭제 된 문자 수 하지만 그냥 재미로,이 다시 쓸 수 있습니다

void Main() 
{ 
    string str = "Amit Kumar"; 
    int c = 0; 
    while(str.Substring(++c) != "") /* do nothing */; 
    Console.WriteLine(c); 
    Console.ReadLine(); 
} 
1

mason's answer 완벽하게 괜찮지 만, 여기에 대안이다 : 그것은 빈 문자열 왼쪽 때까지

void Main() 
{ 
    string str = "Amit Kumar"; 
    int c = 0; 
    while(str != "") 
    { 
     str = str.Substring(1); 
     c++; 
    } 
    Console.WriteLine(c); 
    Console.ReadLine(); 
} 

이 방법은 연속적으로 문자를 제거 한 다음 번호가 인쇄