Professional Documents
Culture Documents
Лекція №10. Програмування мовою С. Символьні рядки
Лекція №10. Програмування мовою С. Символьні рядки
Лекція №10. Програмування мовою С. Символьні рядки
Програмування мовою С
Символьні рядки
ЛЕКТОР:
асистент каф. САПР, к.т.н.
Яворський Назарій Борисович
E-Mail: nazarii.b.yavorskyi@lpnu.ua
Львів - 2020
Програмування мовою С: Символьні рядки
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 2
Програмування мовою С: Символьні рядки
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 3
Програмування мовою С: Символьні рядки
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 4
Програмування мовою С: Символьні рядки
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 5
Програмування мовою С: Символьні рядки
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 6
Програмування мовою С: Символьні рядки
ASCII Art
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 7
Програмування мовою С: Символьні рядки
Загальні відомості
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 8
Програмування мовою С: Символьні рядки
Не плутати!
також
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 10
Програмування мовою С: Символьні рядки
Стрічкові літерали
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 11
Програмування мовою С: Символьні рядки
Стрічкові літерали
#include <stdio.h>
#define MSG "Hello world"
int main(void)
{
char arr[] = MSG;
const char *ptr = MSG;
printf("address of \"Hello world\": %p\n", "Hello world");
printf("address of arr: %p\n", arr);
printf("address of ptr: %p\n", ptr);
printf("address of MSG: %p\n", MSG);
return 0;
}
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 12
Програмування мовою С: Символьні рядки
Ініціалізація
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 13
Програмування мовою С: Символьні рядки
Ініціалізація
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 14
Програмування мовою С: Символьні рядки
Стрічка як масив
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 15
Програмування мовою С: Символьні рядки
Ввід-вивід
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 16
Програмування мовою С: Символьні рядки
Ввід-вивід
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 17
Програмування мовою С: Символьні рядки
Ввід-вивід
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 18
Програмування мовою С: Символьні рядки
Ввід-вивід
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 19
Програмування мовою С: Символьні рядки
Ввід-вивід
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 20
Програмування мовою С: Символьні рядки
Стандартні функції
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 21
Програмування мовою С: Символьні рядки
Стандартні функції
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 22
Програмування мовою С: Символьні рядки
Стандартні функції
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\"\n"
"into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n", pch);
pch = strtok (NULL, " ,.-");
}
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 23
Програмування мовою С: Символьні рядки
Стандартні функції
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 24
Програмування мовою С: Символьні рядки
Стандартні функції
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 25
Програмування мовою С: Символьні рядки
Порівняння рядків
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 26
Програмування мовою С: Символьні рядки
Приклад
#include <stdio.h>
#include <string.h>
int main()
{
char r1[ ] = "One two three";
printf("%s\n", r1);
printf("The length of string = %d\n", strlen(r1));
char *p= strtok(r1, " ");
p = strtok(NULL, " ");
printf("%s\n", p);
return 0;
}
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 27
Програмування мовою С: Символьні рядки
Приклад
#include <stdio.h>
int main()
{
char r1[ ] = "One two three";
printf("%s\n",r1);
int len; for(len=0;r1[len];++len);
printf("The length of string = %d\n",len);
int n;
for(n=0;r1[n]!=' ';++n);
for(++n;r1[n]!=' ';++n)putchar(r1[n]);
return 0;
}
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 28
Програмування мовою С: Символьні рядки
Приклад
#include <stdio.h>
#include <string.h>
int main()
{
char str[5][256];
for(int i=0; i<5; ++i)
scanf("%s", str[i]);
for(int i=0; i<5; ++i)
for(int j=0; j<4; ++j)
if(strcmp(str[j], str[j+1]) > 0)
{
char tmp[256];
strcpy(tmp, str[j]);
strcpy(str[j], str[j+1]);
strcpy(str[j+1], tmp);
}
for(int i=0; i<5; ++i) puts(str[i]);
return 0;
}
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 29
Програмування мовою С: Символьні рядки
Приклад
#include <stdio.h>
#include <ctype.h>
int main(){
char ch;
puts("Please input text. Press Ctrl+Z to finish");
while((ch=getchar())!= EOF)
{
if(islower(ch)) ch = toupper(ch);
else ch = tolower(ch);
putchar(ch);
}
return 0;
}
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 30
Програмування мовою С: Символьні рядки
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 31
Програмування мовою С: Символьні рядки
Небуферизований ввід-вивід
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 32
Програмування мовою С: Символьні рядки
Небуферизований ввід-вивід
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 33
Програмування мовою С: Символьні рядки
Небуферизований ввід-вивід
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
int main()
{
char ch;
puts("Please input text. Press '.' to finish");
while((ch=getch())!= '.')
{
if(islower(ch)) ch = toupper(ch);
else ch = tolower(ch);
putch(ch);
}
return 0;
}
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 34
Програмування мовою С: Символьні рядки
Приклад
#include <stdio.h>
#include <string.h>
int main()
{ int letters[26], length = 0;
char text[1024], ch;
for(int i=0; i<26; ++i) letters[i] = 0;
puts("Please input text. Press Ctrl+Z to stop");
while((ch = getchar()) != EOF){
if((ch >= 'a')&&(ch <= 'z'))
letters[ch - 'a']++;
else if((ch >= 'A') && (ch <= 'Z'))
letters[ch -'A']++;
++length;
}
puts("Letters frequency:");
for(int i=0; i<26; i += 2)
printf("%c: %7.3lf%%\t%c: %7.3lf%%\n",
i + 'A', 100.0 * letters[i] / length,
i+'A' + 1, 100.0 * letters[i+1] / length);
return 0;
}
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 35
Програмування мовою С: Символьні рядки
Зауваження
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 36
Програмування мовою С: Символьні рядки
Алгоритмізація та програмування, частина 1. Лектор – асист. каф. САПР, к.т.н.Яворський Н.Б., Львів, 2020 37