块引用
注意:我不想使用内置的库或其他功能而不是" iostream"和 "串"
char wrd[26],rev[26];
int y,i,s;
s=strlen(wrd)-1;
for(y=0;y<s;y++) for(i=s;i>=0;i--)
{
rev[y]=wrd[i];
}
块引用
以下是手动完成的;它可以工作,但你得到用于填充数组其余部分的随机字符&lt;我需要知道在哪里以及如何插入/ 0元素:
{
char drw[26], wrd2[26];
int s,i=0;
s=strlen(wrd2)-1;
drw[0]=wrd2[s];
drw[1]=wrd2[s-1];
drw[2]=wrd2[s-2];
drw[3]=wrd2[s-3];
drw[4]=wrd2[s-4];
drw[5]=wrd2[s-5];
drw[6]=wrd2[s-6];
drw[7]=wrd2[s-7];
drw[8]=wrd2[s-8];
drw[9]=wrd2[s-9];
drw[10]=wrd2[s-10];
drw[11]=wrd2[s-11];
drw[12]=wrd2[s-12];
drw[13]=wrd2[s-13];
drw[14]=wrd2[s-14];
drw[15]=wrd2[s-15];
drw[16]=wrd2[s-16];
drw[17]=wrd2[s-17];
drw[18]=wrd2[s-18];
drw[19]=wrd2[s-19];
drw[20]=wrd2[s-20];
drw[21]=wrd2[s-21];
drw[22]=wrd2[s-22];
drw[23]=wrd2[s-23];
drw[24]=wrd2[s-24];
drw[25]=wrd2[s-25];
cout << drw;
}
答案 0 :(得分:1)
Oups!第一个版本是坏的,因为你把两个循环放到结果中将不是你所期望的:每个rev的char将连续接收来自wrd的所有字符并以wrd[0]
结束!
第一个版本应该是(只有一个循环):
s=strlen(wrd) - 1;
for(y=0;y<=s;y++)
{
rev[y]=wrd[s - y];
}
rev[s + 1] = '\0'; /* don't forget to null terminate rev */
对于第二个版本,您只需添加
即可drw[s + 1] = '\0';
在cout
之前正确结束反转词。