Zliczanie ilości cyfr i spacji

0

Witam, wczoraj miałem pierwszy wykład o programowaniu C++ i już na jutro muszę zrobić 2 zad. Dopiero się ucze i kiepsko mi to idzie. Prosiłbym o pomoc.

1.Napisz program, który pobiera od użytkownika linię tekstu zatwierdzoną enterem (do 50 znaków). Następnie zlicza ilość cyfr i spacji w podanej linii. Na koniec, wyświetla następujące informacje: ilość znaków w linii, ilość cyfr, ilość spacji.

#include <iostream>
#include <cstdlib>

using namespace std;
int main()
{
char napis[50];
cin.getline(tekst,50);
int d=strlen(tekst);
int cyfra=0;
int spacja=0;
int i=0;
cout<<"Wpisz jakies zdanie "<<endl;
cout<<" : ";
gets(napis);
cout<<"Znakow w zdaniu jest : "<<strlen(napis);

system("PAUSE");
return 0;

}

2.Napisz program, który pobiera od użytkownika dwa słowa. Następnie sprawdza, czy pierwsze z podanych słów nie jest częścią drugiego słowa. Jeśli tak, to z tego drugiego słowa zostanie usunięta ta część. Na koniec zostanie wypisane drugie słowo (po ewentualnych zmianach).

Będę wdzięczny za jakąś podpowiedź i pomoc.

0

pytaj o konkretne rzeczy, nikt nie zrobi tego za Ciebie (chyba ze zaplacisz) wiec w czym konkretnie masz problem

0

W tym 1 zadaniu nie wiem jak zliczyć spacje i cyfry, pewnie jakąś pętlą ale nie mam pojęcia jak ma wyglądać. A w 2 nie mam pojęcia jak porównać czy pierwsze słowo zawiera się w drugim.

0

Może nie błąd ale zamiasr strlen(tekst); użyj tekst.size();

2
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;

int main() {
	char line_buff[50];
	cin.getline(line_buff, 50);
	
	size_t spaces = count(begin(line_buff), end(line_buff), ' ');
	size_t digits = count_if(begin(line_buff), end(line_buff), [](auto x){
		return x >= '0' && x <= '9';
	});
	
	cout << "Chars?" << strlen(line_buff) << endl;
	cout << "Spaces? " << spaces << endl;
	cout << "Digits? " << digits << endl;
	return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	string a, b;
	size_t pos;
	cin >> a >> b;
	pos = b.find(a);
	if(pos != string::npos)
		b.erase(b.begin()+pos, b.begin()+pos+a.size());
	cout << b;
	return 0;
}

Teraz możesz ładnie posiłkować się dokumentacją, bo w takiej formie wykładowca tego raczej nie przyjmie ^

1 użytkowników online, w tym zalogowanych: 0, gości: 1