我创建了一个程序,它接受输入的字符串并反向输出字符串。我创建了一个函数来计算字符串中的字符数。有了这些信息,我创建了另一个函数,将原始数组的第一个字符放在新数组的末尾。因此,当函数中的循环完成时,新数组包含原始数组的字母,但向后。但是我遇到了一些困难。我仍然对字符数组持谨慎态度,我不确定我是否正确使用了它们。有人可以帮帮我吗?
#include <stdio.h>
#define MAXLINE 1000
char backward(char str[], int count)
int count(char str[])
int main() {
char orig[MAXLINE];
int c;
scanf("%s", orig);
c = count(orig);
printf("%s", backward(orig, c));
return 0;
}
char backward(char str[], int count) {
char back[MAXLINE];
int i;
for(i = 0; i <= count; ++i) {
back[count] = str[i];
--count;
return back;
}
int count(char str[]) {
int i;
for (i = 0; str[i] != '\0'; ++i)
;
return i;
}
编辑:输入:让我们说“小型货车”。预期输出将是“navinim”。目前还没有实际输出。我收到此错误:
palindrome.c:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
你得到的错误是因为你的原型(prototype)是错误的:
#include <stdio.h>
#define MAXLINE 1000
char backward(char str[], int count) /* missing ; */
int count(char str[]) /* missing ; */
int main() {
您还应该考虑更换 count()
与 strlen(3)
来自 <string.h>
头文件。标准库中充满了经过调试且已知运行良好的实用程序——值得使用它们。 (是的,重新实现它们具有教育值(value)。但在那种情况下,请准备好使用各种极端情况进行测试。)
我是一名优秀的程序员,十分优秀!