C 언어 에서 strlen () 반환 값 형식 은 기호 가 없 는 것 입 니 다.

2190 단어 C 언어
(전재) http://blog.csdn.net/jubincn/article/details/7335726
참고: < C 와 지침 >
 
strlen () 의 방법 서명 에서 의 반환 값 형식 은 size 입 니 다.t,size_t 는 실제 적 으로 부호 가 없 는 정형 이다.따라서 아래 코드 에 문제 가 있 습 니 다.
 
if( strlen(x) - strlen(y) >= 0 ) ... ;
if( strlen(x) - 10 >= 0) ... ;
이렇게 하면 if 문 구 는 영원히 실 행 됩 니 다. 기호 가 없 으 면 마이너스 가 존재 하지 않 기 때 문 입 니 다.실제로 C 에서 많은 string 관련 함수 의 반환 값 은 모두 부호 가 없 는 숫자 이 므 로 사용 할 때 조심해 야 한다.
 
 
#include <stdio.h>

#include <stdlib.h>

#include <string.h>



int main(int argc, char** argv)

{

    if (strlen("Z") - strlen("ZG") >= 0)

        printf("Exe1
"); if (strlen("ZhuHai") - 10 >= 0) printf("Exe2
"); return 0; }

프로그램 출력:
Exe1
Exe2

좋은 웹페이지 즐겨찾기