C의 문자열이 공백으로 구성되었는지 확인하는 가장 효율적이고 안전한 방법은 무엇입니까? 확인을 위해 함수를 직접 작성해야합니까, 아니면 사용할 수있는 string.h에있는 함수가 있습니까?문자열이 공백으로 구성되었는지 감지하고 있습니까?
답변
글쎄, 자신을 작성하는 것은 간단하다 : 당신이 표준 라이브러리에서 사용
int IsSpaces(char * s) {
while (* s) {
if (! isspace(* s)) {
return 0;
}
s++;
}
return 1;
}
아무것도 훨씬 더 효율적으로 될 가능성이 없습니다.
불쾌감은 없습니다.하지만 코딩 스타일을 읽기가 매우 어렵습니다. – orlp
@night 죄송합니다. 실제로 C 및 C++ 사람들이 내가 할 수있는만큼 명확하게 가르치는 데 수년간 개발되었습니다. –
나에게 읽기 어려운 부분은 괄호 안의 내용 주위의 공간입니다. 그게 어떻게 쉽게 읽을 수 있는지 모르겠습니다. 그것은 논리적으로 함께 움직이는 것들을 나누는 것처럼 보입니다. –
공간을 말하면 정확히 또는 공백 문자입니까?
그러나, 이러한 기능이없는이 그래도 작동합니다
int isonlyspaces(char *str) {
while (isspace(*str++));
return --str == '\0';
}
이 시도 :
int isonlyspaces(char *str) {
while (*str++ == ' ');
return --str == '\0';
}
대신 리터럴 공간의 문자 간격을 의미하는 경우,이 버전이 적절한
if (!s[strspn(s, " ")]) /* it's all spaces */
"spaces"의 정의에 탭, 개행 문자 등을 포함 시키려면 sim 두 번째 인수에 strspn
을 추가합니다.
man string.h
나를 다음 맨 페이지로 안내했습니다.
NAME strspn는 건 strcspn는 -
strspn() 함수는 초기의 길이를 계산하는 문자
SYNOPSIS
#include <string.h> size_t strspn(const char *s, const char *accept); size_t strcspn(const char *s, const char *reject);
DESCRIPTION 세트의 문자열을 검색의 세그먼트는 전체적으로 문자로 구성됩니다. in acce 태평양 표준시.
건 strcspn() 함수는 전체적으로 문자에 거부하지 이루어져 S의 초기 세그먼트의 길이를 산출한다.
- 1. Ruby에서 공백으로 공백으로 변환
- 2. 휴대 전화와 태블릿을 감지하고 있습니까?
- 3. 음악이 재생되고 있는지 감지하고 있습니까?
- 4. 메일 서버가 올바르게 구성되었는지 확인하는 방법은 무엇입니까?
- 5. 배열 값이 0으로 구성되었는지 확인하는 방법은 무엇입니까?
- 6. LPTSTR에 해당하는 문자열이 있습니까?
- 7. C++에는 문자열이 있습니까?
- 8. vim에 유효한 문자열이 있습니까?
- 9. ASP에 문자열이 있습니까?
- 10. OpenCV를 사용하여 안드로이드에서 이미지의 가장자리를 감지하고 있습니까?
- 11. C#/.NET에서 백그라운드 프로세스의 끝을 감지하고 있습니까?
- 12. PHP에서 메소드 체인의 끝을 감지하고 있습니까?
- 13. 다른 이벤트 핸들러가 onsubmit을 취소했는지 감지하고 있습니까?
- 14. XUL로 창로드를 감지하고 Javascript 기능을 실행하고 있습니까?
- 15. bash 스크립트에서 프로그램 오류를 감지하고 있습니까?
- 16. 문자열의 일부를 공백으로 대체하는 정규식
- 17. iostream에게 공백으로 취급 할 문자를 알릴 수 있습니까?
- 18. 문자열이
- 19. iPhone - 감지하고 취소하는 중입니까?
- 20. 방금 NSString이 공백으로 만들어 졌는지 확인하십시오.
- 21. 'If'문을 공백으로 남겨 두십시오 (빠르고 쉬운 질문)
- 22. Regex가 공백으로 실패합니다.
- 23. HTACCESS에서 URL을 감지하고 응답합니까?
- 24. 마이크에서 타격을 감지하고 무언가를하십시오
- 25. 이있는 UIImage 터치를 감지하고
- 26. jQuery texbox .val()는 공백으로 + 기호를 반환합니다.
- 27. % 2B 대신에 공백으로 디코딩
- 28. 공백으로 텍스트 분할
- 29. NumberFormatter로 NSTextField를 공백으로 설정하십시오.
- 30. div를 공백으로 채우기
'is' \ * 함수에주의하십시오 : ** 인자는 ** unsigned char로 변환되어야합니다. [C99 표준] (http://www.open-std.org/JTC1/sc22/wg14/www/docs/n1256.pdf)의 7.4/1을 참조하십시오. – pmg