include stdio h include string h int main
















![例題2.文字列のコピー #include <stdio. h> #include <string. h> int main() { char s 1[80], s 例題2.文字列のコピー #include <stdio. h> #include <string. h> int main() { char s 1[80], s](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-17.jpg)


![例題3.文字列の連結 #include <stdio. h> #include <string. h> int main() { char s 1[80], s 例題3.文字列の連結 #include <stdio. h> #include <string. h> int main() { char s 1[80], s](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-20.jpg)


![#include <stdio. h> #include <string. h> int main() { char s 1[80], s 2[80]; #include <stdio. h> #include <string. h> int main() { char s 1[80], s 2[80];](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-23.jpg)


![文字列の検索 #include <stdio. h> #include <string. h> int main() NULLの意味 { strstr関数では,検索 char name[80], 文字列の検索 #include <stdio. h> #include <string. h> int main() NULLの意味 { strstr関数では,検索 char name[80],](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-26.jpg)






![プログラムとデータ メモリ x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] x[8] C o m プログラムとデータ メモリ x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] x[8] C o m](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-33.jpg)




![曜日の表示 #include <stdio. h> void print_youbi( int youbi ) { char x[7][4] = {"Sun", 曜日の表示 #include <stdio. h> void print_youbi( int youbi ) { char x[7][4] = {"Sun",](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-38.jpg)


![プログラムとデータ メモリ printf( "%s", x[youbi]); S M T W T F S u o プログラムとデータ メモリ printf( "%s", x[youbi]); S M T W T F S u o](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-41.jpg)

- Slides: 42
















![例題2文字列のコピー include stdio h include string h int main char s 180 s 例題2.文字列のコピー #include <stdio. h> #include <string. h> int main() { char s 1[80], s](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-17.jpg)
例題2.文字列のコピー #include <stdio. h> #include <string. h> int main() { char s 1[80], s 2[80]; printf("s 1="); scanf("%s", s 1); strcpy(s 2, s 1); printf("s 1=%s, s 2=%sn", s 1, s 2); return 0; } 17


![例題3文字列の連結 include stdio h include string h int main char s 180 s 例題3.文字列の連結 #include <stdio. h> #include <string. h> int main() { char s 1[80], s](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-20.jpg)
例題3.文字列の連結 #include <stdio. h> #include <string. h> int main() { char s 1[80], s 2[80]; printf("s 1="); scanf("%s", s 1); printf("s 2="); scanf("%s", s 2); strcat(s 1, s 2); printf("s 1=%s, s 2=%sn", s 1, s 2); return 0; } 20


![include stdio h include string h int main char s 180 s 280 #include <stdio. h> #include <string. h> int main() { char s 1[80], s 2[80];](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-23.jpg)
#include <stdio. h> #include <string. h> int main() { char s 1[80], s 2[80]; int n; printf("s 1="); scanf("%s", s 1); printf("s 2="); scanf("%s", s 2); n = strcmp(s 1, s 2); if ( n < 0 ) { printf( "%s<%sn", s 1, s 2 ); } else if ( n == 0 ) { printf( "%s==%sn", s 1, s 2 ); } else if ( n > 0 ) { printf( "%s>%sn", s 1, s 2 ); } return 0; } 23

文字列の比較 実行結果の例(1) s 1=configure s 2=control configure<control 実行結果の例(2) s 1=happy s 2=angry happy>angry 実行結果の例(3) s 1=give s 2=give==give 24

![文字列の検索 include stdio h include string h int main NULLの意味 strstr関数では検索 char name80 文字列の検索 #include <stdio. h> #include <string. h> int main() NULLの意味 { strstr関数では,検索 char name[80],](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-26.jpg)
文字列の検索 #include <stdio. h> #include <string. h> int main() NULLの意味 { strstr関数では,検索 char name[80], base[80]; 文字列が見つからない char *p, *search; ことを意味する printf("name="); scanf("%s", name); search = name; while( ( p = strstr(search, "\") ) != NULL ) { search = p + 1; } strcpy( base, search ); printf("name=%s, base=%sn", name, base); return 0; 26 }

文字列の検索 実行結果の例 name=a: testfile. txt, base=file. txt 27



#include <stdio. h> 「%p」はメモリアドレス #include <string. h> void printstring( char* sの表示 ) 「&」はメモリアドレス { の取得 int i; for (i=0; i<strlen(s); i++) { printf("address(%c) = %pn", s[i], &s[i]); } return; } 「s[i]」は i 番目の文字 int main() という意味 { char x[100]; printf("string="); 「%c」は1文字の表示 scanf("%s", x); printstring(x); return 0; } 30

関数呼び出しの流れ main 関数 int main() 関数呼び出し printstring(x); printstring 関数 void printstring( char* s ) 戻り return 31

文字列のメモリアドレス 実行結果の例 表示された メモリアドレス address(C) = ffbef 440 address(o) = ffbef 441 address(m) = ffbef 442 address(p) = ffbef 443 address(u) = ffbef 444 address(t) = ffbef 445 address(e) = ffbef 446 address(r) = ffbef 447 32
![プログラムとデータ メモリ x0 x1 x2 x3 x4 x5 x6 x7 x8 C o m プログラムとデータ メモリ x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] x[8] C o m](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-33.jpg)
プログラムとデータ メモリ x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] x[8] C o m p u t e r ffbef 441 ffbef 442 ffbef 443 ffbef 444 ffbef 445 ffbef 446 ffbef 447 「文字列の末尾」を 表す特別な文字 (scanf の実行で,自 動的にセットされる) 33




![曜日の表示 include stdio h void printyoubi int youbi char x74 Sun 曜日の表示 #include <stdio. h> void print_youbi( int youbi ) { char x[7][4] = {"Sun",](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-38.jpg)
曜日の表示 #include <stdio. h> void print_youbi( int youbi ) { char x[7][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" }; printf( "%sn", x[youbi]); return; } int main() { int n; printf("youbi="); scanf("%d", &n); print_youbi( n ); return 0; } 38


関数呼び出しの流れ main 関数 int main() 関数呼び出し print_youbi(n); print_youbi 関数 void print_youbi( int youbi ) 戻り return 40
![プログラムとデータ メモリ printf s xyoubi S M T W T F S u o プログラムとデータ メモリ printf( "%s", x[youbi]); S M T W T F S u o](https://slidetodoc.com/presentation_image_h/dcb9a712600a655b1cf383038f868b66/image-41.jpg)
プログラムとデータ メモリ printf( "%s", x[youbi]); S M T W T F S u o u e h r a n n e d u i t 41
