c++
Metis: Dziadku
Zajrzyj tutaj gdy będziesz miał chwilę.
Mam do napisania program, który z podanego tekstu usunie cyfry.
Piszę więc:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
string tekst;
int x;
void menu()
{
cout << "Podaj swoj tekst" << endl;
getline(cin, tekst);
x = tekst.length();
}
int main()
{
menu();
getch();
}
Teraz mam pomysł na puszczenie pętli to kolejnych komórkach tablicy.
Nie wiem tylko jak w warunku zapisać, że jeśli w danej komórce znajduje się zmienna typu int to
ma ją usunąć.
17 sty 03:58
Metis: Napisałem coś takiego z pomocą stackoverflow:
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
string tekst;
int x;
void cyfry()
{
for (int i = 0; i < x; i++)
{
if (isdigit(tekst.at(i)))
{
string::iterator y;
y = tekst.begin() + i;
tekst.erase(i);
break;
}
}
cout << tekst;
}
void menu()
{
cout << "Podaj swoj tekst" << endl;
getline(cin, tekst);
x = tekst.length();
cyfry();
}
int main()
{
menu();
getch();
}
Możesz mi wyjaśnić cały ten warunek?
if (isdigit(tekst.at(i)))
{
string::iterator y;
y = tekst.begin() + i;
tekst.erase(i);
break;
}
17 sty 04:15
Dziadek Mróz: skoro tablica char to znaki 0−9 to cyfry
if (tab[i] >= '0' and tab[i] <= '9')
// nie kopiujesz do wyniku
else
// kopiujesz tab[i] do wyniku
17 sty 05:18
Metis: No tak, Dziadku, ale mam je usunąć, a skopiowanie chyba nic mi nie da.
17 sty 06:13
Dziadek Mróz: tekst.erase(i)
17 sty 09:16
Metis: Ok, już rozumiem
17 sty 10:32