【发布时间】:2015-02-22 20:43:22
【问题描述】:
我正在尝试做一些简单的事情,比如打印字符串的反转。 示例:
Hello World! This is me
需要的O/P:
me is This World! Hello
我的代码是这样的:
#include<stdio.h>
#include<string.h>
int main(){
char *arr[20] ;
int i,j;
int size;
char *revarr[20];
printf(" enter the number of words\n");
scanf("%d",&size);
for(i=0;i<size;i++)
scanf("%s",&arr[i]);
for(i=0;i<size;i++)
{
printf("%s\n",&arr[size-1-i]); //overwritten words
revarr[i]=arr[size-1-i];
}
printf(" the reversed sentence is %s\n",(char *)revarr);
}
我除了 arr[0] , arr[1] 等是单独的实体,但在打印和存储它们时,它们似乎是这样重叠的: 我/p:
Hello World
o/p:
World
HellWorld
the reversed sentence is WorlHell@#$
我似乎无法弄清楚出了什么问题! 提前致谢!
编辑: 打印时
printf(&arr[0]);
printf(&arr[1]);
我明白了:
HellWorld
World
我期望它打印的是
Hello
World
【问题讨论】:
-
看起来 OP 打算这样做,因为
j已声明但从未使用过... -
即使我尝试 print(&arr[0]) 和 print(&arr[1]) 我得到不正确的单词!
-
无论如何,这不是一个嵌套循环。
标签: c string multidimensional-array