/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

Buscar letra x en string.

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
fdymendo



Registrado: 15 Ago 2013
Mensajes: 1

MensajePublicado: 15/08/2013 1:33 pm
Título: Buscar letra x en string.

Me pidieron hacer un programa que tenga una cadena de caracteres, y que busque cuales son letras mayuscula, y las agregue en otra cadena, llevo un codigo pero me surgen ciertos problemas.
1. cuando intento agregar un caracter especifico de la cadena, no me agrega nada.

SOLO MAYUSCULAS
es decir que si esta es mi cadena: 123LK, luego cuando agregue a otra cadena solo este LK, e imprima esa cadena.
este es mi codigo

tengo estos errores segun yo, no se como agregar un valor x de una cadena y sumarlo a otra.
cuando manejo el segundo for, aparece en blanco la impresion.


manejo code blocks.
Tengo windows 8

Código:

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s1 []= "SA12#3$.483abZ14lm1%5A";
    string abecedario[]="ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
    string letras;
    string vocales;
    string simbolos;
    string numeros;

    int i=0;
    int s=0;
    string v[100];
   
                for (i=0;i<=26;i++){
                    for(s=0;s<=26;s++){
                        if (abecedario[s]==s1[i]){
                        cout<<s1[0][i]<<endl;
                        v= 'v' +'s1';
                        s=s+30;
                      }
                    }
                }
                cout<<v<<endl;
    }
Volver arriba
daltomi



Registrado: 28 Abr 2007
Mensajes: 335
Ubicación: Argentina

MensajePublicado: 15/08/2013 4:43 pm
Título:

Buenas.
Necesitas un buen repaso de C++ ya que todo lo estas haciendo "a la C".

De todas maneras muestro 2 ejemplos, el primero con el estándar "viejo" y el segundo con C++0x, de cómo podrías resolver el problema.

Código:

#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>   

using namespace std;

struct esMayuscula
{
    esMayuscula(string& str) : ref(str) { }

    void operator()(char c)
    {
        if( isupper(c) ) { ref += c; }
    }
   
    private:

        string& ref;
};

int main()
{
    const string datos("SA12#3$.483abZ14lm1%5A");
   
    string resultado;

    for_each ( datos.begin(),
              datos.end(),
              esMayuscula(resultado)
             );

    cout << resultado << endl;
}


Para el segundo deberás activar el estándar C++0x desde tú compilador.
Generalmente para el compilador GCC en Windows es: -std=gnu++0x.
Código:

#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>   

using namespace std;

int main()
{
    const string datos("SA12#3$.483abZ14lm1%5A");
   
    string resultado;

    std::copy_if ( datos.begin(),
                   datos.end(),
                   back_inserter(resultado),
                   [](char c){ return isupper(c); }
                 );
   
    cout << resultado << endl;
}



Saludos.
Volver arriba
Dirección AIM
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com