Hərf iki halda sözün ilk hərfi olur:
bu, sətrin ilk simvoludur (sətir birbaşa sözdən başlaya bilər);
ondan dərhal əvvəl boşluq durur.
Digər hallarda hərf sözün içərisində yerləşir və dəyişməz qalır.
Boşluqlar bu zaman dəyişdirilmir. Buna görə sözlər arasındakı bütün aralıqlar, o cümlədən arda-arxaya gələn bir neçə boşluqdan ibarət olanlar da saxlanılır, və çıxış sətri sözlərin ilk hərfləri istisna olmaqla hər yerdə giriş sətri ilə üst-üstə düşür.
Kiçik latın hərfini böyük hərfə çevirmək üçün toupper funksiyasından istifadə etmək və ya simvolun kodundan '' - '' = fərqini çıxmaq olar: ASCII cədvəlində kiçik və böyük latın hərflərinin kodları düz vahid fərqlənir.
Sətir boşluqlar tərkib etdiyi üçün onu tam oxumaq lazımdır, məsələn, C++ dilində getline funksiyası və ya C dilində gets funksiyası ilə.
Alqoritmin reallaşdırılması
İşçi sətir elan edək.
string s;Giriş sətrini oxuyuruq.
getline(cin,s);Əgər sətrin ilk simvolu boşluq deyilsə, onu böyük hərfə çevirmək lazımdır.
if (s[0] != ' ') s[0] = toupper(s[0]);Əgər cari simvol hərfdirsə və ondan əvvəl boşluq yerləşirsə, onu da böyük hərfə çevirmək lazımdır.
for(int i = 1; i \u003c s.size(); i++)
if (s[i] != ' ' \u0026\u0026 s[i-1] == ' ')
s[i] = toupper(s[i]);Nəticə sətrini çap edirik.
cout \u003c\u003c s \u003c\u003c endl;Java reallaşdırılması
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
char s[] = con.nextLine().toCharArray();
if (s[0] != ' ') s[0] = Character.toUpperCase(s[0]);
for(int i = 1; i \u003c s.length; i++)
if (s[i] != ' ' \u0026\u0026 s[i-1] == ' ')
s[i] = Character.toUpperCase(s[i]);
System.out.println(String.valueOf(s));
con.close();
}
}Python reallaşdırılması
Giriş sətrini oxuyuruq.
s = input()title() funksiyası sətirdəki hər sözün ilk hərfini böyük (yuxarı registr) hərfə çevirmək üçün istifadə olunur, qalan hərflər isə kiçik (aşağı registr) hərfə çevrilir.
Nəticə sətrini çap edirik.
print(s.title())