|
Plusieurs langages de programmation peuvent accomplir cela. Voici des exemples en Python et C++. Les deux versions gèrent de manière appropriée les espaces blancs potentiels de début/de fin et les espaces multiples entre les mots.
Python :
```python
def count_chars_words(ligne):
"""Compte les caractères et les mots dans une ligne de texte.
Args :
line : la chaîne d'entrée.
Retours :
Un tuple contenant le nombre de caractères et le nombre de mots. Renvoie (0,0) pour une entrée vide.
"""
line =line.strip() # Supprime les espaces de début/fin
sinon ligne :
retourner 0, 0
char_count =len (ligne)
word_count =len(line.split()) #split sur les espaces
retourner char_count, word_count
#Exemple d'utilisation
line ="Ceci est un exemple de ligne."
caractères, mots =count_chars_words(ligne)
print(f"Ligne :'{ligne}'")
print(f"Nombre de caractères :{caractères}")
print(f"Nombre de mots :{mots}")
line2 =" Une autre ligne avec des espaces supplémentaires. "
caractères, mots =count_chars_words(line2)
print(f"\nLigne :'{line2}'")
print(f"Nombre de caractères :{caractères}")
print(f"Nombre de mots :{mots}")
line3 ="" #tester la ligne vide
caractères, mots =count_chars_words(line3)
print(f"\nLigne :'{line3}'")
print(f"Nombre de caractères :{caractères}")
print(f"Nombre de mots :{mots}")
```
C++ :
```cpp
#include
#include
#include
en utilisant l'espace de noms std ;
pair countCharsWords(const string&line) {
chaîne trimmedLine =ligne ;
trimmedLine.erase(0, trimmedLine.find_first_not_of(" \t\n\r\f\v")); //supprime les espaces de début
trimmedLine.erase(trimmedLine.find_last_not_of(" \t\n\r\f\v") + 1); //supprime les espaces de fin
if (trimmedLine.empty()) {
return make_pair(0, 0);
}
int charCount =trimmedLine.length();
int nombre de mots =0 ;
stringstream ss(trimmedLine);
mot de chaîne ;
while (ss>> mot) {
nombre de mots++ ;
}
return make_pair(charCount, wordCount);
}
int main() {
string line ="Ceci est un exemple de ligne.";
comptes automatiques =countCharsWords(ligne);
cout <<"Ligne :'" <
cout <<"Nombre de caractères :" <
cout <<"Nombre de mots :" <
string line2 =" Une autre ligne avec des espaces supplémentaires. ";
counts =countCharsWords(line2);
cout <<"\nLigne :'" <
cout <<"Nombre de caractères :" <
cout <<"Nombre de mots :" <
chaîne ligne3 ="" ; //tester la ligne vide
counts =countCharsWords(line3);
cout <<"\nLigne :'" <
cout <<"Nombre de caractères :" <
cout <<"Nombre de mots :" <
renvoie 0 ;
}
```
N'oubliez pas de compiler le code C++ avant de l'exécuter (par exemple, en utilisant g++ :`g++ votre_nom_de_fichier.cpp -o votre_nom_exécutable`). Les deux programmes gèrent efficacement divers scénarios d’espaces et fournissent un comptage robuste de caractères et de mots. La version Python est généralement plus concise.
|