Created
November 20, 2018 15:16
-
-
Save KeitetsuWorks/6d40fa3ed9179b194d6aa70cb7d0d083 to your computer and use it in GitHub Desktop.
引数として受け取った文字列を逆順にコピーする関数 void str_copy_reverse(char dst[ ], char src[ ]) を作成せよ.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * @file q14199270599.c | |
| * @brief q14199270599 | |
| * @author Keitetsu | |
| * @date 2018/11/20 | |
| * @copyright Copyright (c) 2018 Keitetsu | |
| * @par License | |
| * This software is released under the MIT License. | |
| */ | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <string.h> | |
| /** | |
| * 引数として受け取った文字列を逆順にコピーする関数 void str_copy_reverse(char dst[ ], char src[ ]) を作成せよ. | |
| * また,これを用いて,キーボードより受け取った文字列を逆順に表示するプログラムを作成せよ. | |
| * 例えば, "Marina Bay Sands Singapore" -> "eropagniS sdnaS yaB aniraM" となることを確認せよ. | |
| */ | |
| void str_copy_reverse(char dst[], char src[]); | |
| int main(void) | |
| { | |
| char key_buf[256]; | |
| char *result_str; | |
| memset(key_buf, 0, sizeof(key_buf)); | |
| fprintf(stdout, "Key in a string>> "); | |
| scanf("%255[^\n]", key_buf); | |
| result_str = (char *)malloc(sizeof(char) * (strlen(key_buf) + 1)); | |
| if (result_str == NULL) { | |
| fprintf(stderr, "[ERROR] memory allocation error\n"); | |
| return -1; | |
| } | |
| memset(result_str, 0, sizeof(char) * (strlen(key_buf) + 1)); | |
| str_copy_reverse(result_str, key_buf); | |
| fprintf(stdout, "%s\n", result_str); | |
| free(result_str); | |
| return 0; | |
| } | |
| void str_copy_reverse(char dst[], char src[]) | |
| { | |
| size_t dst_strlen; | |
| int i, j; | |
| char buf; | |
| strcpy(dst, src); | |
| dst_strlen = strlen(dst); | |
| i = 0; | |
| j = dst_strlen - 1; | |
| while (i < j) { | |
| buf = dst[j]; | |
| dst[j] = dst[i]; | |
| dst[i] = buf; | |
| i++; | |
| j--; | |
| } | |
| return; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment