Upload
mongoo
View
985
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
Тэмдэгт мөр
Strings Тэмдэгт мөр
Strings тэмдэгт мөр
Энэ нь тэмдэгтүүдийн массив Текст хадгалахад хэрэглэгддэг Анхны утгыг :
char A[ ]=“temdegt”;
Terminator дуусгагч
Тэмдэгт мөр нь NULL тэмдгээр төгсдөг, ‘\0’ гэж оноож болно (ascii code 0)
Энэ нь тэмдэгт мөр хаана дуусаж байгааг мэдэх бололцоог олгоно
7 урттай тэмдэгт мөр хадгалах массивын хэмжээ 8 байна
Өмнөх анхны утга оноолт нь
char A[ ] = {‘t’, ‘e’ , ‘m’, ‘d’, ‘e’, ‘g’, ‘t’, ‘\0’}; адилхан
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;}
Мөрийг унших арга
Хэрэглэгчийн оруулсан тэмдэгтийг авах хэд хэдэн арга байна
Тэмдэг тэмдэгээр нь авах getchar()
Жишээ#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;}
Scanf-р унших
Scanf хэрэглэх нь хялбар арга
str-д бичсэн мөрийг уншиж авах нь scanf(“%s”, str); Энд харин ‘&’ тэмдэг байхгүй харж
байна уу!!!
Scanf-р унших
scanf нь хоосон зай ба шинэ мөр (‘\n’) тааралдтал уншдаг
Мөрийн уртыг тогтоон өгч болно: scanf(“%10s”, str); 10 тэмдэг уншаад 11 дээр нь мэдээж ‘\
0’ залгана
Жишээ
#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;}
Мөрүүдийг харьцуулах
== тэмдгээр мөрүүдийг харьцуулж болохгүй 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
….
….
Жишээ
#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;}
Алхам алхмаар
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
Алхам алхмаар
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
Алхам алхмаар
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
Алхам алхмаар
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
Алхам алхмаар
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
Алхам алхмаар
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
Алхам алхмаар
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
Алхам алхмаар
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
Тэнцүү-Алхам алхмаар
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
Тэнцүү-Алхам алхмаар
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
Тэнцүү-Алхам алхмаар
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
Тэнцүү-Алхам алхмаар
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
Тэнцүү-Алхам алхмаар
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
Тэнцүү-Алхам алхмаар
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
Тэнцүү-Алхам алхмаар
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
Тэнцүү-Алхам алхмаар
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
Ялгаатай-Алхам алхмаар
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
Ялгаатай-Алхам алхмаар
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
Ялгаатай-Алхам алхмаар
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
Ялгаатай-Алхам алхмаар
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
Ялгаатай-Алхам алхмаар
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
Ялгаатай-Алхам алхмаар
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
Ялгаатай-Алхам алхмаар
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
String сан
stdio.h сан тэмдэгт мөр боловсруулахад хэрэгтэй зүйлсийг агуулж байдаг.
#include <string.h> Функцууд:
strlen(s) –s-н уртыг буцаана strcmp(s1, s2) – s1 -г s2 той харьцуулна strcpy(s1, s2) – s2 –н агуулгыг s1 –д
хуулна strrev(s1)- s1-г хөрвүүлнэ Гэх мэт…
Жишээ
easy_compare.c
100 хүртэл урттай тэмдэгт мөрийг оруул
Хэрэглэгч хоёр тэмдэгт оруулна Мөрөөс хэрэглэгчийн эхний үсгийг
хайж олоод хоёр дахь үсгээр соль. Жишээ:
оролт: “papa”, ‘p’, ‘m’ гаралт: “mama”
Дасгал
Дараах функцийг бич void my_to_lower(char str[]); Энэ функц тэмдэгт мөр хүлээн аваад том
үсгүүдийг харгалзах жижиг үсгээр солино.
Хэд хэдэн жишээ гарган бичсэн функцээ тайлбарла.