编写一个函数invert(s),颠倒输入的字符串参数s后返回。在main()函数中测试此函数:从键盘输入一个正整数n(n∈[1,20]),然后再输入n个字符串(长度不大于100),对于每一个字符串,然后调用invert函数进行颠倒字符串操作,将颠倒后的字符串打印在屏幕上。
#include <stdio.h>
#include "string.h"
void invert(char *s)
{
int i,j;
char c;
for (i=0,j=strlen(s)-1; i<j; i++,j--) {
c=s[i];
s[i]=s[j];
s[j]=c;
}
}
int main()
{
int n;
char s[100];
scanf("%d",&n);
while(n--)
{
scanf("%s",s);
invert(s);
printf("%s\n",s);
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:def invert(s):
"""
颠倒输入字符串参数s后返回
:param s: 待颠倒的字符串
:return: 颠倒后的字符串
"""
return s[::-1] # 直接利用python字符串翻转的功能[::-1]
def main():
n = int(input("请输入正整数n(n∈[1,20]):"))
if 1 <= n <= 20:
for i in range(n):
s = input("请输入字符串:")
print(invert(s))
if __name__ == '__main__':
main()
解释:
invert(s)
函数中,直接利用python特性,用[::-1]
翻转字符串参数s
,然后返回。
main()
函数中,首先获取正整数n
,判断是否在[1,20]的范围内,然后循环n次,每次获取一个字符串s
,并调用invert(s)
函数进行颠倒,最后打印到屏幕上。
最后通过if语句,保证只有在直接运行该脚本时才会执行main()
函数,而在其他脚本调用该模块时不会执行该函数,这是个好习惯。