用户输入一个字符串,将下标为偶数的字符串提出来合并成一个新的字符串A,再将下标为奇数的字符串提出来合并成一个新的字符串B,再将字符串A和B连接起来输出。
输入格式:
输入一行字符串,如:abcdefg
输出格式:
将下标为偶数的字符串提出来合并成一个新的字符串A,再将下标为奇数的字符串提出来合并成一个新的字符串B,再将字符串A和B连接起来输出。如: aceg bdf acegbdf
输入样例1:
在这里给出一组输入。例如:
abcdefg
结尾无空行
输出样例1:
在这里给出相应的输出。例如:
aceg
bdf
acegbdf
结尾无空行
输入样例2:
在这里给出一组输入。例如:
白日依山尽
结尾无空行
输出样例2:
在这里给出相应的输出。例如:
白依尽
日山
白依尽日山
结尾无空行
PTA编译器存储中文字符占用3字节,运行前需要测试清楚。
下面给出笔者的答案,鉴于刚接触C语言不久,难免会有纰漏,欢迎各方大佬斧正。
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],A[100],B[100];
int i=0,j=0,k=0;
gets(a);
if((int)a[0]>0)
{
for(i=0;i<strlen(a);i++)
{
if(i%2==0)
{
A[j]=a[i];
j++;
}
else
{
B[k]=a[i];
k++;
}
}
A[j]='\0';
B[k]='\0';
puts(A);
puts(B);
strcat(A,B);
printf("%s",A);
}
else
{
for(i=0;i<strlen(a);i=i+6)
{
A[j]=a[i];
A[j+1]=a[i+1];
A[j+2]=a[i+2];
j=j+3;
}
for(i=3;i<strlen(a);i=i+6)
{
B[k]=a[i];
B[k+1]=a[i+1];
B[k+2]=a[i+2];
k=k+3;
}
A[j]='\0';
B[k]='\0';
puts(A);
puts(B);
printf("%s",A);
printf("%s",B);
}
return 0;
}
时间有限,注释恐不能及时加上,有疑问的可以在评论区提问,我会尽力解答。
合作伙伴@lan无敌最俊朗
|