C++ 应用程序消除了多个空格和元音。C++;哎呀
我正在尝试实现一个应用程序,它建立一个接收者、发送者和消息,由用户给定,Mensaje类中的方法“elimnarBlc”是消除一行中的多个空格,例如,如果消息是“Hello\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuworld”,则该方法必须将其转换为“Hello\uuuworld” “eliminarVlc”方法用于消除所有元音,如“Hello World”->“Hll Wrld”C++ 应用程序消除了多个空格和元音。C++;哎呀,c++,oop,C++,Oop,我正在尝试实现一个应用程序,它建立一个接收者、发送者和消息,由用户给定,Mensaje类中的方法“elimnarBlc”是消除一行中的多个空格,例如,如果消息是“Hello\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuworld”,则该方法必须将其转换为“Hello\uuuworld” “eliminarVlc”方法用于消除所有元音,如“Hello World”->“Hll Wrld” 当我尝试使用“”来表示空白时,它给了我一个错误:“ISO C++禁止指针和整数的比较”。如
当我尝试使用“”来表示空白时,它给了我一个错误:“ISO C++禁止指针和整数的比较”。如图所示:
如果我尝试使用ACII代码(32,表示空白),它会崩溃 有时它会向我抛出一个windows对话框,“Aplication mensajes.exe崩溃”,正如您看到的,当尝试执行“elimarBlc”方法时,它会停止 希望你能帮我解决这个问题:)谢谢 代码如下:#include <iostream>
#include <stdio.h>
#include <string>
#include <cstring>
using namespace std;
class Mensaje{
private:
char emisor[20], receptor[20], mensaje[100];
public:
Mensaje (string em, string re, string msj){
strncpy(emisor, em.c_str(), sizeof(emisor));
strncpy(receptor, re.c_str(), sizeof(receptor));
strncpy(mensaje, msj.c_str(), sizeof(mensaje));
}
string getEmisor(){
string em(emisor);
return em;
}
string getReceptor(){
string re(receptor);
return re;
}
string getMensaje(){
string msj(mensaje);
return msj;
}
void setEmisor(string em){
strncpy(emisor, em.c_str(), sizeof(emisor));
}
void setReceptor(string re){
strncpy(receptor, re.c_str(), sizeof(receptor));
}
void setMensaje(string msj){
strncpy(mensaje, msj.c_str(), sizeof(mensaje));
}
void muestraMensaje(){
cout << "\nEmisor: " << emisor;
cout << "\nReceptor: " << receptor;
cout << "\nMensaje: " << mensaje;
}
void eliminarBlc(){
for(int i=0,j=1; i<j<sizeof(mensaje); i++,j++){
mensaje[i]=mensaje[j-1];
if(mensaje[i]==32 && mensaje[j]==32){
i--;
}
}
}
void eliminarVcl(){
for(int i=0,j=0; i<j<sizeof(mensaje); i++, j++){
mensaje[i]=mensaje[j];
if(mensaje[i]==97||mensaje[i]==65||mensaje[i]==101||mensaje[i]==69||mensaje[i]==105||mensaje[i]==73||mensaje[i]==111||mensaje[i]==79||mensaje[i]==117||mensaje[i]==85){
i--;
}
}
}
};
int main(){
while(1>0){
string re;
string em;
string msj;
cout << "\n+++++Realizando mensajes!++++++";
cout << "\nIngresa el receptor: ";
getline(cin, re);
cout << "\nIngresa el emisor: ";
getline(cin, em);
cout << "\nIngresa el mensaje: ";
getline(cin, msj);
Mensaje Msj(em, re, msj);
cout << "\n\nEl mensaje que ingresaste es: ";
Msj.muestraMensaje();
cout << "\n\nMensaje sin espacios en blanco: ";
Msj.eliminarBlc();
Msj.muestraMensaje();
cout << "\nMensaje sin vocales: ";
Msj.eliminarVcl();
Msj.muestraMensaje();
getchar();
getchar();
}
return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
门萨耶类{
私人:
碳发射子[20],受体[20],门萨杰[100];
公众:
Mensaje(字符串em、字符串re、字符串msj){
strncpy(emior,em.c_str(),sizeof(emior));
strncpy(受体,re.c_str(),sizeof(受体));
strncpy(mensaje,msj.c_str(),sizeof(mensaje));
}
字符串getemissor(){
字符串em(emissor);
返回em;
}
字符串getReceptor(){
串re(受体);
返回re;
}
字符串getMensaje(){
字符串msj(mensaje);
返回msj;
}
void setemissor(字符串em){
strncpy(emior,em.c_str(),sizeof(emior));
}
无效设置接收器(字符串re){
strncpy(受体,re.c_str(),sizeof(受体));
}
void setMensaje(字符串msj){
strncpy(mensaje,msj.c_str(),sizeof(mensaje));
}
void muestraMensaje(){
不能改变i