第10章 char 文字列; 文字列を入力させるよ!
前回までのC++講座 intで作った関数はreturnで戻り値を返す voidでも関数が作れる 戻り値の値でintで関数を作るかdoubleで関数を作るか考える 第10章 文字列
練習問題 実行結果と同じになるようにプログラムを書いてください プログラムは逆順に出力する関数Reprintfを使用しています main関数 int main(){ int a[5]; for(int i=0;i<5;i++){ printf("Input a[%d] > ",i); scanf("%d",&a[i]); } Reprintf(a); return 0; 第10章 文字列
解答 void Reprintf(int a[]){ printf(“逆順に表示\n"); for(int i=0;i<5;i++) printf("a[%d] > %d\n",i,a[4-i]); } 第10章 文字列
文字列 #include<stdio.h> int main(){ char s; printf("input string > "); scanf("%c",&s); printf("%c\n",s); return 0; } char型の変数に半角英数1文字のみ入れられる 第10章 文字列
A:65 a:97 アスキーコード #include<stdio.h> int main(){ char s='A'; printf("%c\n",s); return 0; } A:65 a:97 第10章 文字列
文字列 #include<stdio.h> int main(){ int i; char s[128]; \0:ヌル文字 文字列の最後にはこれが入ってる どこまでが文字列かを知らせる記号 #include<stdio.h> int main(){ int i; char s[128]; printf("input strings > "); scanf("%s",s); for(i=0;s[i]!='\0';i++); printf(“文字の長さは%dです\n",i); return 0; } 第10章 文字列
練習問題 実行結果が同じになるように、プログラムを書いてください プログラムは小文字を大文字に、大文字を小文字に入れ替える関数replaceを使用しています int main(){ int i; char s[128]; printf("input strings > "); scanf("%s",s); for(i=0;s[i]!='\0';i++) s[i]=replace(s[i]); printf(“変換後:%s\n",s); return 0; } 第10章 文字列
解答 #include<stdio.h> char replace(char s){ if('A'<=s && s<='Z')return s+=32; else if('a'<=s && s<='z')return s-=32; else return s; } int main(){ int i; char s[128]; printf("input strings > "); scanf("%s",s); for(i=0;s[i]!='\0';i++) s[i]=replace(s[i]); printf("変I換・後a:F%s\n",s); return 0; 第10章 文字列
練習問題 実行結果が同じになるように、プログラムを書いてください プログラムは2つの文字列を入力し、その文字列をつなげる関数connectを使用しています int main(){ int i,j; char s[128],t[128]; printf("input string 1 > "); scanf("%s",s); printf("Input string 2 > "); scanf("%s",t); connect(s,t); printf(“つなげた文字列:%s\n",s); return 0; } 第10章 文字列
解答 void connect(char s[],char t[]){ int i,j; for(i=0;s[i]!='\0';i++); for(j=0;t[j]!='\0';j++){ s[i]=t[j]; i++; } s[i]='\0'; 第10章 文字列
次回予告 ポインタ わからなすぎてもうなんかアレ 第10章 文字列