문자열의 첫 번째 줄의 문자 수를 계산하는 함수를 만듭니다. 문자열이 한 줄로 길다면 null을 종료 할 때까지 문자 수를 계산합니다. ch 문자를 \ n과 비교하는 부분이 예상대로 작동하지만 ch 문자를 \ 0과 비교할 수 없습니다. 문자열에 여러 개의 \ 0을 추가하더라도 비교를 결코 충족시키지 못합니다. 어떤 생각?C : 문자열의 문자와 ' 0'의 비교가 작동하지 않습니까?
#include <stdio.h>
int main() {
/*variables*/
char* string="shit\nand\npee\0";
int bytesRead=0;
int bytesTemp=0;
char ch=' ';
/*find the number of characters before a newline or end of string*/
while(ch!='\n') { //doesn't work with ch!='\0'
sscanf(string+bytesRead, "%c%n", &ch, &bytesTemp);
bytesRead+=bytesTemp;
printf("Bytes read: %d\n", bytesRead);
printf("Variable ch has value: %c\n", ch);
}
return 0;
}
시도한 '\ 0'과 (과) 비교 한 부분은 어디입니까? – jonsca
잠시 후 코멘트에 있습니다. 정확히 작동하지 않는 것이 무엇인지 명확하게하기 위해 실제 코드에 포함시키지 않았습니다. – Pithikos
확인. 나는 그것을 보았지만 당신이 두 가지 조건을 시도했는지 궁금해했습니다. 나는 어쨌든 첫 번째 해결책이 있다고 생각한다. 배열 색인을 사용하여 char에 의해 char 문자를 따라 스캔 할 수도 있지만, 전반적인 목표가 무엇인지 확실하지 않습니다. – jonsca