Programación de C / C ++ - Semana 9 ⑥ Eliminar sufijo de palabra

Enlace de tema

Descripción del Título

Dada una palabra, si la palabra termina con un sufijo de er, ly o ing, elimine el sufijo (el título garantiza que la longitud de la palabra después de eliminar el sufijo no es 0), de lo contrario no se realiza ninguna operación.

Formato de
entrada Introduzca una línea, incluida una palabra (sin espacios entre palabras, la longitud máxima de cada palabra es 32).

Formato de
salida Muestra las palabras procesadas de acuerdo con los requisitos del título.

Entrada de muestra

referer

Salida de muestra

refer

Ideas

Determina si las últimas dos o tres letras son "er", "ly", "ing". Si es así, envíe un sufijo menos, de lo contrario, envíe todos.

C ++ código 1:

#include<iostream>
using namespace std;
string s;
int r;
int main()
{
    
    
	cin >> s;
	r = s.size() - 1;//r指向我们应该输出字符串的最后一个字符的下标
	if(s[r - 1] == 'e' && s[r] == 'r') r -= 2;//如果最后两个字母是er,就不输出这两个字母,同时让r往前移动2位
	else if(s[r - 1] == 'l' && s[r] == 'y') r -= 2;//如果最后两个字母是ly,就不输出这两个字母,同时让r往前移动2位
	else if(s[r - 2] == 'i' && s[r - 1] == 'n' && s[r] == 'g') r -= 3;//如果最后三个字母是ing,就不输出这三个字母,同时让r往前移动3位
	for(int i = 0; i <= r; ++i)
		cout << s[i];//输出到从0到r的所有字符
	cout << '\n';
	return 0;
}

C ++ código 2:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    
    
	string str;
	while(cin >> str)
	{
    
    
		int len = str.length();
		if(str[len - 2] == 'e' && str[len - 1] == 'r')
		{
    
    
			for(int i = 0; i < len - 2; i++)
				cout << str[i];
			cout << endl;
		}
		else if(str[len - 2] == 'l' && str[len - 1] == 'y')
		{
    
    
			for(int i = 0; i < len - 2; i++)
				cout << str[i];
			cout << endl;
		}
		else if(str[len - 3] == 'i' && str[len - 2] == 'n' && str[len - 1] == 'g')
		{
    
    
			for(int i = 0; i < len - 3; i++)
				cout << str[i];
			cout << endl;
		}
		else cout << str << endl;
	}
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_44826711/article/details/113095795
Recomendado
Clasificación