InformaticăliceuClasa 10mediu
Șiruri de Caractere în C++
Tutorial complet despre lucrul cu șiruri de caractere în C++: char arrays și clasa string.
8 zile în urmă
0 vizualizări
35 minute
Șiruri de Caractere în C++
Două Moduri de a Lucra cu Șiruri
- •char[] - stil C (array de caractere)
- •string - clasa C++ (recomandat)
Șiruri ca Array de Caractere (char[])
1char sir[100]; 2 3// Citire 4cin >> sir; // Citește până la spațiu 5cin.getline(sir, 100); // Citește linia întreagă 6 7// Afișare 8cout << sir; 9 10// Lungime 11int len = strlen(sir);
Funcții pentru char[] (din <cstring>)
1#include <cstring> 2 3char s1[100] = "Hello"; 4char s2[100] = "World"; 5 6strlen(s1); // Lungimea: 5 7strcpy(s1, s2); // Copiază s2 în s1 8strcat(s1, s2); // Concatenează s2 la s1 9strcmp(s1, s2); // Compară: 0 dacă egale
Clasa string (Recomandat)
1#include <string> 2 3string s1 = "Hello"; 4string s2 = "World"; 5 6// Operații 7int len = s1.length(); // sau s1.size() 8string s3 = s1 + " " + s2; // Concatenare 9bool egal = (s1 == s2); // Comparare 10 11// Citire 12cin >> s1; // Până la spațiu 13getline(cin, s1); // Linia întreagă 14 15// Acces la caractere 16char c = s1[0]; // Primul caracter 17s1[0] = 'h'; // Modificare
Metode Utile string
1string s = "Hello World"; 2 3s.length(); // 11 4s.empty(); // false 5s.substr(0, 5); // "Hello" 6s.find("World"); // 6 (poziția) 7s.replace(0, 5, "Hi"); // "Hi World" 8s.erase(0, 3); // "lo World" 9s.insert(0, "Sal"); // "Sallo World"
Parcurgerea unui Șir
1string s = "Hello"; 2 3// Cu index 4for (int i = 0; i < s.length(); i++) { 5 cout << s[i] << " "; 6} 7 8// Range-based for 9for (char c : s) { 10 cout << c << " "; 11}
Probleme Clasice
Numără vocalele
1int nrVocale = 0; 2string vocale = "aeiouAEIOU"; 3for (char c : s) { 4 if (vocale.find(c) != string::npos) { 5 nrVocale++; 6 } 7}
Inversare șir
1// Metoda 1: Manual 2for (int i = 0; i < s.length() / 2; i++) { 3 swap(s[i], s[s.length() - 1 - i]); 4} 5 6// Metoda 2: STL 7reverse(s.begin(), s.end());
Verificare palindrom
1bool estePalindrom(string s) { 2 int i = 0, j = s.length() - 1; 3 while (i < j) { 4 if (s[i] != s[j]) return false; 5 i++; j--; 6 } 7 return true; 8}
Exerciții
- •Numără aparițiile unui caracter în șir
- •Elimină spațiile dintr-un șir
- •Verifică dacă două șiruri sunt anagrame
- •Transformă în majuscule/minuscule
Găsește un profesor de informatică pentru pregătire personalizată!
Tutorialul te-a ajutat?
Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații
