38
Тэмдэгт мөр Strings Тэмдэгт мөр

C lects (6)

  • Upload
    mongoo

  • View
    985

  • Download
    2

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: C lects (6)

Тэмдэгт мөр

Strings Тэмдэгт мөр

Page 2: C lects (6)

Strings тэмдэгт мөр

Энэ нь тэмдэгтүүдийн массив Текст хадгалахад хэрэглэгддэг Анхны утгыг :

char A[ ]=“temdegt”;

Page 3: C lects (6)

Terminator дуусгагч

Тэмдэгт мөр нь NULL тэмдгээр төгсдөг, ‘\0’ гэж оноож болно (ascii code 0)

Энэ нь тэмдэгт мөр хаана дуусаж байгааг мэдэх бололцоог олгоно

7 урттай тэмдэгт мөр хадгалах массивын хэмжээ 8 байна

Өмнөх анхны утга оноолт нь

char A[ ] = {‘t’, ‘e’ , ‘m’, ‘d’, ‘e’, ‘g’, ‘t’, ‘\0’}; адилхан

Page 4: C lects (6)

Null тэмдэгт юу хийгээд байна вэ?

#include <stdio.h>

int main(void){ char str[]="I'm a full string"; printf("%s\n", str); str[7]='o'; str[8]='o'; printf("%s\n", str); str[11]='\0'; printf("%s\n", str); str[11] = 's'; printf("%s\n", str);

return 0;}

Page 5: C lects (6)

Мөрийг унших арга

Хэрэглэгчийн оруулсан тэмдэгтийг авах хэд хэдэн арга байна

Тэмдэг тэмдэгээр нь авах getchar()

Page 6: C lects (6)

Жишээ#include <stdio.h>

#define MAX_LENGTH 10

int main(void) {

char s[MAX_LENGTH+1]; /* We need one more place for the '\0' */char c;int i;

printf("Please enter a string:\n");

for (i=0; i<MAX_LENGTH; i++) {

c = getchar();if (c=='\n')

break;

s[i] = c;}

s[i] = '\0'; /* Terminate the string */printf("The string you entered is - %s\n", s);

return 0;}

Page 7: C lects (6)

Scanf-р унших

Scanf хэрэглэх нь хялбар арга

str-д бичсэн мөрийг уншиж авах нь scanf(“%s”, str); Энд харин ‘&’ тэмдэг байхгүй харж

байна уу!!!

Page 8: C lects (6)

Scanf-р унших

scanf нь хоосон зай ба шинэ мөр (‘\n’) тааралдтал уншдаг

Мөрийн уртыг тогтоон өгч болно: scanf(“%10s”, str); 10 тэмдэг уншаад 11 дээр нь мэдээж ‘\

0’ залгана

Page 9: C lects (6)

Жишээ

#include <stdio.h>

#define MAX_LENGTH 10

int main(void) {

char str[MAX_LENGTH+1]; /* We need one more place for the '\0' */

printf("Please enter a string:\n");

scanf("%10s", str); /* Note - no '&' sign!!! */printf("The string you entered is - %s\n", str);

return 0;}

Page 10: C lects (6)

Мөрүүдийг харьцуулах

== тэмдгээр мөрүүдийг харьцуулж болохгүй char A[7]=“Hello”; char B[7]=“Hello”;

if (A==B) {

... } A B нь үнэндээ A[0] B[0] элементүүдийн хаягийг хадгалж байгаа.

A==B байх нөхцөл нь A B мөр нэг адил хаяг дээр байх явдал Агуулгыг харьцуулах бол тэмдэг тэмдгээр харьцуулах хэрэгтэй

‘H’

‘e’

‘l’ ‘l’ ‘o’

‘\0’

….

B

….

….

‘H’

‘e’

‘l’ ‘l’ ‘o’

‘\0’

….

A

….

….

Page 11: C lects (6)

Жишээ

#include <stdio.h>

int main(void) {

int i; char A[101]; char B[101];

printf("Enter first string\n"); scanf("%100s",A);

printf("Enter second string\n"); scanf("%100s",B);

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i]) { printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;}

Page 12: C lects (6)

Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

0

i

‘Y’ ‘e’ ‘w’ ‘\0’

A

Page 13: C lects (6)

Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

0

i

‘Y’ ‘e’ ‘w’ ‘\0’

A

Page 14: C lects (6)

Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

1

i

‘Y’ ‘e’ ‘w’ ‘\0’

A

Page 15: C lects (6)

Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

1

i

‘Y’ ‘e’ ‘w’ ‘\0’

A

Page 16: C lects (6)

Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

2

i

‘Y’ ‘e’ ‘w’ ‘\0’

A

Page 17: C lects (6)

Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

2

i

‘Y’ ‘e’ ‘w’ ‘\0’

A

Page 18: C lects (6)

Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

2

i

‘Y’ ‘e’ ‘w’ ‘\0’

A

Page 19: C lects (6)

Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

2

i

‘Y’ ‘e’ ‘w’ ‘\0’

A

Page 20: C lects (6)

Тэнцүү-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

0

i

‘Y’ ‘e’ ‘s’ ‘\0’

A

Page 21: C lects (6)

Тэнцүү-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

0

i

‘Y’ ‘e’ ‘s’ ‘\0’

A

Page 22: C lects (6)

Тэнцүү-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

1

i

‘Y’ ‘e’ ‘s’ ‘\0’

A

Page 23: C lects (6)

Тэнцүү-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

1

i

‘Y’ ‘e’ ‘s’ ‘\0’

A

Page 24: C lects (6)

Тэнцүү-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

2

i

‘Y’ ‘e’ ‘s’ ‘\0’

A

Page 25: C lects (6)

Тэнцүү-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

2

i

‘Y’ ‘e’ ‘s’ ‘\0’

A

Page 26: C lects (6)

Тэнцүү-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

3

i

‘Y’ ‘e’ ‘s’ ‘\0’

A

Page 27: C lects (6)

Тэнцүү-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

3

i

‘Y’ ‘e’ ‘s’ ‘\0’

A

Page 28: C lects (6)

Ялгаатай-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

0

i

‘Y’ ‘e’ ‘\0’

A

Page 29: C lects (6)

Ялгаатай-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

0

i

‘Y’ ‘e’ ‘\0’

A

Page 30: C lects (6)

Ялгаатай-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

1

i

‘Y’ ‘e’ ‘\0’

A

Page 31: C lects (6)

Ялгаатай-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

1

i

‘Y’ ‘e’ ‘\0’

A

Page 32: C lects (6)

Ялгаатай-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

2

i

‘Y’ ‘e’ ‘\0’

A

Page 33: C lects (6)

Ялгаатай-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

1

i

‘Y’ ‘e’ ‘\0’

A

Page 34: C lects (6)

Ялгаатай-Алхам алхмаар

for(i=0; A[i]!='\0' || B[i]!='\0'; i++) if(A[i]!=B[i])

{ printf("A is different from B!\n"); return 0; } printf("A and B are the same!\n"); return 0;

B

‘Y’ ‘e’ ‘s’ ‘\0’

1

i

‘Y’ ‘e’ ‘\0’

A

Page 35: C lects (6)

String сан

stdio.h сан тэмдэгт мөр боловсруулахад хэрэгтэй зүйлсийг агуулж байдаг.

#include <string.h> Функцууд:

strlen(s) –s-н уртыг буцаана strcmp(s1, s2) – s1 -г s2 той харьцуулна strcpy(s1, s2) – s2 –н агуулгыг s1 –д

хуулна strrev(s1)- s1-г хөрвүүлнэ Гэх мэт…

Page 36: C lects (6)

Жишээ

easy_compare.c

Page 37: C lects (6)

100 хүртэл урттай тэмдэгт мөрийг оруул

Хэрэглэгч хоёр тэмдэгт оруулна Мөрөөс хэрэглэгчийн эхний үсгийг

хайж олоод хоёр дахь үсгээр соль. Жишээ:

оролт: “papa”, ‘p’, ‘m’ гаралт: “mama”

Page 38: C lects (6)

Дасгал

Дараах функцийг бич void my_to_lower(char str[]); Энэ функц тэмдэгт мөр хүлээн аваад том

үсгүүдийг харгалзах жижиг үсгээр солино.

Хэд хэдэн жишээ гарган бичсэн функцээ тайлбарла.