strlen()
및 strrev()
기능을 사용하지 않고 문자열을 역순으로 변환하는 프로그램입니다. 이 코드와 관련하여 도와주십시오 : length
함수는 11
을 나타내지 만 reverse
함수는 작동하지 않습니다.왜이 문자열 역방향 프로그램이 작동하지 않습니까?
#include <stdio.h>
#include <conio.h>
int length(char*);
char *reverse(char*);
main() {
printf("%d", length("himanshupal"));
printf("%s", reverse("himanshupal"));
getch();
}
/* used to calculate the lenghth*/
int length(char *p) {
int l;
for (l = 0; *(p+l) != '\0'; l++);
return (l);
}
char *reverse(char *p) { // function for reversing the string
// l used for length
int i, l;
char t;
for (l = 0; *(p+l) != '\0'; l++);
for (i = 0; i < l/2; i++) {
t = *(p+i);
*(p+i) = *(p+l-1-i);
*(p+l-1-i) = t;
}
return (p);
}
같은 기능의 길이가, 당신이 무엇을 의미합니까 선언 낫다는 것을 고려? 빌드 오류가 발생합니까? 그런 다음 정확한 오류를 게시하십시오. 충돌이 발생합니까? 그런 다음 디버거를 실행하여 발생 위치를 찾습니다. 예기치 않은 결과가 나옵니까? 그런 다음 실제 및 예상 출력을 보여주십시오. 또한 [좋은 질문을하는 방법에 대해 읽어보십시오.] (http://stackoverflow.com/help/how-to-ask). –
문자열 리터럴의 타입은'const char *'입니다. 어쨌든 프로그램을 컴파일하는 것은 모든 C 프로그래머가 Hard Way를 배워야하는 비극입니다. –
내 프로그램을 length.exe로 저장합니다. 실행 길이 함수 후 11 보여줍니다.하지만 녹색 라인 실행 후 팝업 창이 표시하고 length.exe가 제대로 실행되지 않는 것을 보여줍니다 –