중화사전망 - 영어 사전 - C 언어 문자열은 마지막 문자를 반복할 수 없습니다. 도와주세요.

C 언어 문자열은 마지막 문자를 반복할 수 없습니다. 도와주세요.

Z 변수의 마지막 끝 기호 0 을 계산하려면 루프에서

I++;+; If (s [I] = =' \ 0') goto u; If (s [I] =' \ 0') gotou; I++;+;

또한 코드에 몇 가지 개선 사항이 있습니다.

1. 코드에서 goto 로 점프하지 않도록 노력하십시오. 루프에서 벗어나 전체 루프를 끝내려면 break 문을 사용합니다. 마찬가지로 이 루프를 건너뛰고 다음 루프로 들어가려면 문을 계속할 수 있습니다.

2.if else 실행은 비효율적입니다. 특히 if 판단이 많고 문자열이 길면 더욱 그렇습니다. 여기서 판단을 간단하게 사용하면 각 조건이 성립된 후 continue 문++를 추가하여 다음 루프로 바로 이동합니다 (뒤의 판단은 필요 없음).

3. 종료 기호도 직접 0 으로 표시할 수 있습니다.

다음 코드 (둘 이상의 메서드가 있음):

Void StringCount(char* s)

{

Int a = 0;; //대문자 수

Intb = 0; //소문자 수

Int c = 0;; //공백 수

Int d = 0;; //자릿수

Intz = 0; //기타 문자 수

Int I =-1;

While( 1)

{

++I;

If (s [I] > =' a'& & amps [I] < =' Z '){ a++;+; 계속; }

If (s [I] > =' a'& & amps [I] < =' z '){ b++;+; 계속; }

If (s [I] = ='') {c++; 계속; }

If (s [I] > =' 0'& & amps [I] < =' 9 '){ d++;+; 계속; }

Z++;+;

If (s [I] = = 0) break; //여기서 종료자도 z 에 포함되어 있습니다. z, z, z++ 의 위치를 포함하지 않으려면 그 반대가 됩니다.

}

Printf ("%d% d% d% d", a, b, c, d, z);

}