在C ++中,我需要:
main()
,它会显示带有新反转字符的原始数组。我无法创建实际执行倒车的功能,因为我有一些限制:
我的函数只传入原始数组,即:
void reverse(char word[])
编辑:到目前为止,这是我的代码库:
void reverse(char word[]);
void main()
{
char word[MAX_SIZE];
cout << endl << "Enter a word : ";
cin >> word;
cout << "You entered the word " << word << endl;
reverse(word);
cout << "The word in reverse order is " << word << endl;
}
void reverse(char myword[])
{
int i, temp;
j--;
for(i=0;i<(j/2);i++)
{
temp = myword[i];
myword[i] = myword[j];
myword[j] = temp;
j--;
}
}
答案 0 :(得分:9)
尽管看起来很像家庭作业,但我可以建议:
void reverse(char word[])
{
int len=strlen(word);
char temp;
for (int i=0;i<len/2;i++)
{
temp=word[i];
word[i]=word[len-i-1];
word[len-i-1]=temp;
}
}
或者更好的是,经典的XOR实现:
void reverse(char word[])
{
int len=strlen(word);
for (int i=0;i<len/2;i++)
{
word[i]^=word[len-i-1];
word[len-i-1]^=word[i];
word[i]^=word[len-i-1];
}
}
答案 1 :(得分:2)
由于这是作业,我会指出你的解决方案,而不是给你答案。
您的reverse
函数可以修改传入的word
。您需要知道的一件事是这个词有多长(所以你会知道要反转多少个字母),你可以从strlen()
函数得到这个。如果您不允许使用指针,则可以使用本地int
索引变量。
答案 2 :(得分:-1)
如果我们正在谈论C-Strings,那么你的功能应该是
void reverse(char word[],size_t wordlen)
来自同一问题的第一个答案(这是来自Reverse a sentence in C?)
的欺骗这不符合您的要求,但让您非常接近!
int ReverseString(char *rev)
{
if(*rev!='\0')
{
ReverseString(rev + 1);
putchar(*rev);//change this.
}
return 1;
}
致@devinb。
答案 3 :(得分:-1)
//此程序可帮助您查找数组中的最大和最小数字
#include<iostream.h>
#include<conio.h>
int main()
{int max;
int a[5]={12,1,0,4,5};
int min=a[0];
int i=1;
max=a[0];
while(i<=4)
{
if (max < a[i])
max=a[i];
if (min > a[i])
min=a[i];
i++;
}
cout << min <<"\n";
cout << max;
getch();
return 0;
}