Baş hərfli sözlər sətri#8320

Baş hərfli sözlər sətri (Həll təhlili)

Hərf iki halda sözün ilk hərfi olur:

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())