我写的一个任意字符串反序输出的例子,大家来改进改进阿: )交流一下
#include<stdio.h>#include<string.h>
#include<ctype.h> //包含strcat()
int main()
{
//测试字符串
char *p = " 长度和坐标总是相差1,所以这里要加个1 有人可能会说那上面直接加2好了,我这样是为了逻辑清楚";
char temp[1000];
int n = strlen(p)-1;
printf("length:%d\n",n);
while(n > 0)
{
//不是字母或数字,不是标点,不是空格或其他制表符
if(!isalnum(*(p+n)) && !ispunct(*(p+n)) && !isspace(*(p+n)))
{
//原以为一个汉字是2个字符,看了strlen后发现是3个字符
n = n - 3;
//长度和坐标总是相差1,所以这里要加个1
//有人可能会说那上面直接减2好了,我这样是为了逻辑清楚
//见笑了
//一点一点和temp字符串结合起来
strncat(temp,p+n+1,3);
}
else
{
n = n - 1;
strncat(temp,p+n+1,1);
}
}
puts(p);
puts(temp);
}
[[italic] 本帖最后由 yangyang321 于 2007-11-25 19:17 编辑 [/italic]]