我想反转字符串中单词的字母,并且必须将其存储在同一个数组中。示例: i/p: hi how are you o/p: ih woh era uoy。我写了这个程序,但它只是打印相同的字符串而不反转,并且程序没有终止它继续打印一些东西。我找不到错误。请帮助我并告诉我正确的代码。
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
void stre(char (&a1)[20], int j1, int i1)
{
char b[20];
for(int k=i1-j1;k<i1;k++)
b[k]=a1[i1-k-1];
for(k=i1-j1;k<i1;k++);
a1[k]=b[k];
}
void main()
{
clrscr();
int j;
char a[20];
gets(a);
for(int i=0;a[i]!='\0';i++)
{
j++;
if(a[i]==' ')
{
stre(a,j,i);
j=0;
}
}
stre(a,j,i);
for(j=0;j<i;j++)
cout<<a[j];
getch();
}
朋友们,在你回答之后,我删除了 for 循环中的分号,并且还初始化了 j=0,但我现在仍然无法为 i/p:hi 获得所需的输出,你好吗 o/p:ihh hi hhi hhi。仍然需要你的帮助。