最近上课时闲来无事,突然思考了一下一个很无聊的问题。
众所周知,一条线段,找到它的中心点,那么我们就可以将其按照中心点对折。
那么,我突然想到,对于一个字符串来说,可不可以也实现它某种意义上的对折呢?
然后,我便开始在草稿纸上演算了一下,发现还是挺简单的,所以记录下来。
这里以字符串Hello为例:
(CSDN突然秀逗了,编辑好的代码,出来后简直不能看,就不使用添加代码了,直接粘代码,可能格式有点不好看,望见谅!)
#include <stdio.h>
int main( )
{
char String[6] = "Hello";
int i = 0;
int length = 0;
//计算字符串长度
while( String[i] != '\0' )
{
length ++;
i ++;
}
//Temp数组保存中心点以前的字符
char Temp[2] = {0};
int j = 0;
//将中心点以后的字符对折到中心点以前
while( j < (length)/2 )
{
Temp[j] = String[j];
String[j] = String[length - 1 - j ];
j ++;
}
int t = 0;
//将Temp数组的字符赋给中心点后面的位置
while( t < (length)/2 )
{
String[length - 1 - t ] = Temp[t];
t ++;
}
int k = 0;
while( String[k] != '\0' )
{
printf( "%c", String[k] );
k ++;
}
printf( "\n" );
return 0;
}
完成了之后,突然发现,这不就是将一个字符串倒序输出嘛。
顿时,汗死了。
但总的来说,没事多想想问题还是有好处的。