第11章 *ポインタ; もうわけわかめ 前回までのC++講座 char型の変数に文字を入力、出力した 配列作れば文字列を入れられる \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章 文字列 ポインタ #include<stdio.h> void addition(int a,int b,int *add){ *add=a+b; } int main(){ int a,b,add; printf("Input a > "); scanf("%d",&a); printf("Input b > "); scanf("%d",&b); addition(a,b,&add); printf("%d + %d = %d\n",a,b,add); return 0; } 第10章 文字列 練習問題 実行結果が同じになるようにプログラムを書いて ください プログラムは入力した2数の値を入れ替える関数 swapを使用しています int main(){ int a,b,add; printf("Input a > "); scanf("%d",&a); printf("Input b > "); scanf("%d",&b); swap(&a,&b); printf("a:%d b:%d\n",a,b); return 0; } 第10章 文字列 解答 void swap(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp; } 第10章 文字列 #include<stdio.h> 文字列のポインタには配列である事の int str_length(char *s){ 説明がいらない (つまり*s[]って書かなくていいってこと) int i; for(i=0;s[i]!='\0';i++); return i; } int main(){ char str[1024]; printf("Input string > "); scanf("%s",str); printf(“%d 文字\n",str_length(str)); return 0; } 文字列には&をつけない scanf(“%s”,str); str_length(str) 第10章 文字列
© Copyright 2024 ExpyDoc