输入一个整数n,接下来输入n行字符串,对每行的字符串,请将前一半字符移动后一半字符后面,如果字符总数为奇数,则前一半少一个,后一半多一个处理。
运行代码:3
abc123 //输入
123abc //输出
abcd1234 //输入
1234abcd //输出
123456789 //输入
567891234 //输出
需要用到strlen
#include <stdio.h> #include <string.h> void foo( char* s ) { size_t n = strlen(s); if( n%2 == 0 ) { for( size_t i=0; i!=n/2; ++i ) { char t = s[i]; s[i] = s[n/2+i]; s[n/2+i] = t; } } else { char t = s[0]; for( size_t i=n/2; i!=0; i=(i+n/2)%n ) s[(i+n/2+1)%n] = s[i]; s[n/2+1] = t; } }