fork download
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <stdio.h>
  4. #include <string.h>
  5.  
  6. #define MAX 50
  7.  
  8. typedef struct word_pair{
  9. char longer_word[10];
  10. char shorter_word[10];
  11. char combined_word[20];
  12. int longer_word_length;
  13. int shorter_word_length;
  14. }word_pair_t;
  15.  
  16. word_pair_t create_word_pair(char *a, char *b);
  17.  
  18. int main()
  19. {
  20. char a[MAX], b[MAX];
  21. word_pair_t str;
  22.  
  23. printf("文字列を2つ入力してください。\n");
  24. printf("1つ目:");
  25. scanf("%s",a);
  26. printf("2つ目:");
  27. scanf("%s",b);
  28. str = create_word_pair(a, b);
  29.  
  30. printf("長い方の文字列[%s]\n",str.longer_word);
  31. printf("短い方の文字列[%s]\n",str.shorter_word);
  32. printf("連結した文字列[%s]\n",str.combined_word);
  33. printf("長い方の文字列の長さ[%d]\n",str.longer_word_length);
  34. printf("短い方の文字列の長さ[%d]\n",str.shorter_word_length);
  35.  
  36. return 0;
  37. }
  38.  
  39. word_pair_t create_word_pair(char *a, char *b)
  40. {
  41. word_pair_t str;
  42. size_t lena, lenb;
  43. int cmp;
  44.  
  45. lena = strlen(a);
  46. lenb = strlen(b);
  47. if (lena == lenb) {
  48. cmp = strcmp(a, b);
  49. } else {
  50. cmp = lena - lenb;
  51. }
  52.  
  53. if (cmp > 0) {
  54. strcpy(str.longer_word, a);
  55. strcpy(str.shorter_word, b);
  56. } else if (cmp < 0) {
  57. strcpy(str.longer_word, b);
  58. strcpy(str.shorter_word, a);
  59. } else {
  60. fprintf(stderr, "同じ文字列です\n");
  61. strcpy(str.longer_word, a);
  62. strcpy(str.shorter_word, "");
  63. }
  64. sprintf(str.combined_word, "%s %s", str.longer_word, str.shorter_word);
  65. str.longer_word_length = strlen(str.longer_word);
  66. str.shorter_word_length = strlen(str.shorter_word);
  67.  
  68. return str;
  69. }
  70.  
Success #stdin #stdout 0.01s 1724KB
stdin
abc
def
stdout
文字列を2つ入力してください。
1つ目:2つ目:長い方の文字列[def]
短い方の文字列[abc]
連結した文字列[def abc]
長い方の文字列の長さ[3]
短い方の文字列の長さ[3]