文字列の入力&出力
/*2kadai01-1.c*/
#include<stdio.h>
#include<stdlib.h>
typedef char *str;
str string(n)
int n;

/*領域の確保(定義)*/
{
str p;
p=(char *)malloc(n*sizeof(char));
if(!p) printf("領域が確保できません。終了します。");
return(p);
}

/*領域の解放(定義)*/
void freestr(p)
str p;
{
free(p);
}


main()
{
int x,n,k,l,i;
str p,q;

/*文字列の長さ入力*/
printf("文字列の長さnを入力");
scanf("%d",&n);
p=string(n);

/*文字列の入力*/
printf("注意:1文字入力する度にenterkeyを押すこと。\n");
for(x=0;x<n;x++){
printf("%d文字目は?",x+1);
scanf("%s",&p[x]);
}
printf("入力した文字列は%sです。",p);

/*k,lの入力*/
printf("\nk番目からl番目の文字列を出力します。\n");
printf("ただし、1 <= k <= l <= %dの範囲内で入力してください。\n",n);

printf("k=");
scanf("%d",&k);
printf("l=");
scanf("%d",&l);

/*k番目からl番目までの出力*/
if((1 <= k)&&(k <= l)&&(l <= n)){
q=string(l-k+1);
for(i=0;i<l-k+1;i++){
q[i]=p[i+k-1];
}


printf("%d番目から%d番目の文字列は%sです。\n",k,l,q);

/*領域の解放*/
freestr(p);
freestr(q);

}

/*1 =< k =< l =< nでなければエラー終了*/
else{
printf("条件を満たしたk,lの値ではなかったため、出力できません。");
}

}


SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送