Это программа для преобразования строк без использования функций 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. –
Я сохраняю свою программу с длиной.exe. после выполнения функции продолжительности показывает 11. но после того, как окно зеленой линии запускает всплывающие окна и показывает, что length.exe не работает должным образом –