Flera programmeringsspråk kan åstadkomma detta. Här är exempel i Python och C ++. Båda versionerna hanterar potentiella ledande/släpande vitrum och flera utrymmen mellan ord på lämpligt sätt.
python:
`` `python
def count_chars_words (rad):
"" "Räknar tecken och ord i en rad text.
Args:
Rad:Ingångssträngen.
Returnerar:
En tupel som innehåller karaktärsräkningen och ordräkningen. Returnerar (0,0) för tom ingång.
"" "
line =line.strip () # ta bort ledande/släpande vitrum
Om inte linje:
returnera 0, 0
char_count =len (linje)
word_count =len (line.Split ()) #Split på Whitespace
return char_count, word_count
#Exempelanvändning
line ="Detta är en provlinje."
Chars, Words =count_chars_words (rad)
utskrift (f "linje:'{line}'")
tryck (F "karaktärsantal:{chars}")
tryck (f "Word Count:{Words}")
Line2 ="En annan linje med extra utrymmen."
Chars, Words =count_chars_words (Line2)
tryck (f "\ nline:'{line2}'")
tryck (F "karaktärsantal:{chars}")
tryck (f "Word Count:{Words}")
rad3 ="" #test tom linje
chars, ord =count_chars_words (rad3)
tryck (f "\ nline:'{line3}'")
tryck (F "karaktärsantal:{chars}")
tryck (f "Word Count:{Words}")
`` `
C ++:
`` `cpp
#include
#include
#include
med namnutrymme STD;
par countCharswords (const string &line) {
String trimmedline =linje;
trimmedline.erase (0, trimmedline.find_first_not_of ("\ t \ n \ r \ f \ v")); // Ta bort ledande vitrum
trimmedline.erase (trimmedline.find_last_not_of ("\ t \ n \ r \ f \ v") + 1); // Ta bort efterföljande blankett
if (trimmedline.empty ()) {
return make_pair (0, 0);
}
int charCount =trimmedline.length ();
int wordCount =0;
StringStream SS (trimmedline);
strängord;
medan (ss>> ord) {
WordCount ++;
}
return make_pair (charcount, wordcount);
}
int main () {
String line ="Detta är en provlinje.";
Auto Counts =countCharswords (linje);
cout <<"Line:'" <
cout <<"Karaktärräkning:" <
cout <<"Word Count:" <
String Line2 ="En annan linje med extra utrymmen.";
räkningar =countCharswords (linje2);
cout <<"\ nline:'" <
cout <<"Karaktärräkning:" <
cout <<"Word Count:" <
String Line3 =""; // Testa tom linje
räkningar =countCharswords (linje3);
cout <<"\ nline:'" <
cout <<"Karaktärräkning:" <
cout <<"Word Count:" <
return 0;
}
`` `
Kom ihåg att sammanställa C ++ -koden innan du kör den (t.ex. med G ++:`g ++ your_file_name.cpp -o your_executable_name`). Båda programmen hanterar effektivt olika Whitespace -scenarier och ger robust karaktär och ordräkning. Pythonversionen är i allmänhet mer kortfattad.