我创建了一个程序,它接受一个输入的字符串并向后输出字符串.我创建了一个计算字符串中字符数的函数.有了这些信息,我创建了另一个函数,将原始数组的第一个字符放在新数组的末尾.因此,当函数中的循环完成时,新数组包含原始数组的字母但向后.然而,我遇到了一些困难.我仍然对字符数组保持警惕,我不确定我是否正确使用它们.有人可以帮帮我吗?
#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;
}
Run Code Online (Sandbox Code Playgroud)
编辑:输入:让我们说"小型货车".预期的产出将是"navinim".还没有实际的输出.我收到这个错误:
palindrome.c:8: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
Run Code Online (Sandbox Code Playgroud)
你得到的错误是因为你的原型是错误的:
#include <stdio.h>
#define MAXLINE 1000
char backward(char str[], int count) /* missing ; */
int count(char str[]) /* missing ; */
int main() {
Run Code Online (Sandbox Code Playgroud)
你也应该考虑更换count()与strlen(3)来自<string.h>头文件.标准库中充满了已经调试并且已知可以正常工作的实用程序 - 值得使用它们.(是的,重新实施它们具有教育价值.但在这种情况下,请准备好对各种角落情况进行测试.)