在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--;
}
}
尽管这看上去很homeworky,我建议:
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];
}
}
由于这是功课,我会点你朝着一个解决方案,而只是给你答案。
您的reverse
功能可以修改word
传递进来。有一件事你需要知道的是如何长字(所以你知道有多少字母扭转),可以从得到这个strlen()
函数。 如果你不允许使用指针,那么你可以使用本地int
指数变量。
如果我们对C字符串,那么你的功能应该是
void reverse(char word[],size_t wordlen)
从同样的问题第一个答案(这是从欺骗反向在C句子? )
这不你在找什么,但可以让你非常接近!
int ReverseString(char *rev)
{
if(*rev!='\0')
{
ReverseString(rev + 1);
putchar(*rev);//change this.
}
return 1;
}
学分@devinb。
//这个程序可以帮助你找到最大和最小数的数组
#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;
}