No.03


文字列の処理






問題

1) キーボードから文字列を入力する関数はscanf以外になにがあるか.
こたえ
2) printf("%s\n",…) とほぼ同じ働きをする関数はなにか.
こたえ
3) printf("%c",…) とほぼ同じ働きをする関数はなにか.
こたえ
4) つぎのプログラムの実行結果(表示される文字列)を予測しなさい.
 #include <stdio.h>
 #include <string.h>
 int main(void) {
   char w[10];
   int i;
   strcpy(w,"IBM");
   i=0;
   while(w[i]!='\0') {
     w[i]--;
     i++;
   }
   printf("%s",w);
   return 0;
 }
こたえ
5) #include <string.h> のように,includeの後ろに書く 〜.hは何ファイルと呼ばれるか.
こたえ


資料

問題11の解答例

問題11 下の実行例のように入力された文字列を半分ずつ2行で表示するプログラムを作りなさい.
  文字列を入れて Computer
  Comp-
  uter


#include <stdio.h>
int main(void) {
  char word[100];
  int i,n,mid;
  printf("文字列を入れて ");
  gets(word);
  n=0;
  while(word[n]!='\0') n++;  /* 文字列の長さを求める */
  mid=n/2;
  for(i=0;i<mid;i++) putchar(word[i]);  /* 前半表示 */
  printf("-\n");
  for(i=mid;i<n;i++) putchar(word[i]);   /* 後半表示 */
  putchar('\n');
  return 0;
}

#include <stdio.h>
int main(void) {
  char word[100];
  int i,n,mid;
  printf("文字列を入れて ");
  gets(word);
  n=0;
  while(word[n]!='\0') n++;   /* 文字列の長さを求める */
  mid=n/2;
  i=0;
  while(word[i]!='\0') {  /* 1文字ずつ表示 */
    putchar(word[i]);
    i++;
    if(i==mid) printf("-\n");   /* 真ん中になったら-と改行 */
  }
  putchar('\n');
  return 0;
}

→ 戻る [プログラミング2]

大同大学 情報学部 情報システム学科 大石研究室