중화사전망 - 영어 사전 - C 언어 문자열은 마지막 문자를 반복할 수 없습니다. 도와주세요.
C 언어 문자열은 마지막 문자를 반복할 수 없습니다. 도와주세요.
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);
}