|
分類:[C/C++]
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #define WORD_MAX (10)
int main(void){ int i; int word_string; char data_in[WORD_MAX]; char data_out[WORD_MAX]; char *pdata_in; char *pdata_out; int j; int word_string2; char data_in2[WORD_MAX]; char data_out2[WORD_MAX]; char *pdata_in2; char *pdata_out2;
printf("%d文字以内で文字列(姓)を入力してください。\n", WORD_MAX); while(1){ scanf("%s", &data_in); rewind(stdin); word_string = strlen(data_in); printf("入力した文字列(姓)は%dです。\n", word_string); if (word_string <= WORD_MAX) break; printf("もう一度入力してください\n");
} printf("============================================================\n"); pdata_in = &data_in[word_string - 1]; pdata_out = &data_out[0];
for (i = 0; i<word_string; i++) { *pdata_out = *pdata_in; pdata_in--; pdata_out++; } *pdata_out = '\0';
printf("%d文字以内で文字列(名)を入力してください。\n", WORD_MAX); while(1){ scanf("%s", &data_in2); rewind(stdin); word_string2 = strlen(data_in2); printf("入力した文字列(名)は%dです。\n", word_string2); if (word_string2 <= WORD_MAX) break; printf("もう一度入力してください\n");
} printf("============================================================\n"); pdata_in2 = &data_in2[word_string2 - 1]; pdata_out2 = &data_out2[0];
for (j = 0; j<word_string2; j++) { *pdata_out2 = *pdata_in2; pdata_in2--; pdata_out2++; } *pdata_out2 = '\0';
printf("入力した文字列(姓):%s\n", data_in); printf("反転した文字列(姓):%s\n", data_out);
printf("入力した文字列(名):%s\n", data_in2); printf("反転した文字列(名):%s\n", data_out2);
strcat(data_in, data_in2); strcat(data_out, data_out2); printf("入力した文字列連結:%s\n", data_in,data_in2); printf("反転した文字列連結:%s\n", data_out,data_out2);
rewind(stdin); getchar(); return 0; }姓と名で10字以上入力したらデバックでエラーが出るので修正してくださいお願いします。
|