Hice una pregunta hoy para ingresar múltiples conjuntos de cadenas. Mi condición de bucle es la siguiente, pero el envío falla:
char data[100];
while(gets(data)!=EOF)
Al enviar el programa, me pide que agote el tiempo:
El tiempo de uso de la solución superó el límite de algunos casos de prueba。
Luego lo reemplacé con lo siguiente:
char data[100];
while(gets(data)!=NULL)
La única diferencia está al final.
Los temas específicos son los siguientes:
mayúscula primera letra
Descripción
Ingrese una oración en inglés, cambiando la primera letra de cada palabra a mayúsculas.
Aporte
Los datos de entrada contienen múltiples instancias de prueba, cada una de las cuales es una oración en inglés con una longitud de no más de 100, ocupando una línea.
Producción
Envíe la oración en inglés reescrita según sea necesario.
Muestra
Aporte
me gusta acm quiero que me acepten
Producción
Me gusta Acm Quiero que me acepten
El código que escribí es el siguiente:
#include <stdio.h>
int main()
{
char data[100];
//printf("%d",a);//小写的a是97 大写的A是65
while(gets(data)!=NULL)
{
//先判断一下第一字符若是小写先转换为大写
if(data[0]>='a'&&data[0]<='z')
{
data[0]=data[0]-32;
}
//遍历剩下的元素
for(int i=1;data[i]!='\0';i++)
{
//找到了每一个单词的第一个字母
if(data[i]==' '&&(data[i+1]>='a'&&data[i+1]<='z'))
{
data[i+1]=data[i+1]-32;
}
}
//输出每一个单词,单词与单词之间用空格隔开
for(int i=0;data[i]!='\0';i++)
{
if(data[i]!=' ')
{
printf("%c",data[i]);
}
else
{
printf(" ");
}
}
printf("\n");
}
return 0;
}