题目描述
对N个字符串进行处理:
如果包含x或X,在字符串末尾插入YES,并把x或X替换为空格
如果不含,则在末尾插入NO;
将所有字符串按字典排序升序排列输出,每个字符串占一行
每个字符串最多包含一个x或X
输入
第一行:正整数N表示字符串个数(N<101)
接下来N行,每行一个字符串
输出
N行,处理后的字符串排序
样例输入
3 xabc fjds abXc
样例输出
abcYES ab cYES fjdsNO
#include<stdio.h>
#include<string.h>
int main()
{
int n,i,j,m,t[101];
char str1[ ]="NO";
char str2[ ]="YES";
char term[101];
scanf("%d",&n);
char a[101][101];
for(i=0;i<n;i++)
{
scanf("%s",a[i]);
}
for(i=0;i<n;i++)
{
t[i]=0;
for(j=0;a[i][j]!='\0';j++)
{
if(a[i][j]=='X'||a[i][j]=='x')
{
a[i][j]=' ';
t[i]++;
}
}
}
for (i = 0; i < n - 1; i++)
{
for (j = 1; j < n - i; j++)
{
if (strcmp(a[j], a[j - 1]) < 0)
{
strcpy(term, a[j]);
strcpy(a[j], a[j - 1]);
strcpy(a[j - 1], term);
m=t[j];
t[j]=t[j-1];
t[j-1]=m;
}
}
}
for (i = 0; i < n; i++)
{
if(t[i]==0)
{
printf("%s\n", strcat(a[i],str1));
}
else if(t[i]==1)
{
printf("%s\n", strcat(a[i],str2));
}
}
}