『新・明解C言語 入門編 第2版』演習問題解答例 9ー10

演習9ー10

問: 文字列s内のすべての数字文字を除去する関数を作成せよ。たとえば、”AB1C9″を受け取ったら、”ABC”に更新する。

 void del_digit(char s[])

// Ex0910.c

#include <stdio.h>

void del_digit(char s[])
{
    int i = 0;
    while (s[i]) {
        if (s[i] >= '0' && s[i] <= '9') {
            s[i] = '\0';
            putchar(s[i++]);
        } else {
            putchar(s[i++]);
        }
            
    }
    putchar('\n');
}

int main(void)
{
    char str[128];

    printf("文字列を入力せよ:");
    scanf("%s", str);
    
    printf("数字のみを除去しました。=");
    del_digit(str);

    return 0;
}

コメント

 特になし。

 


書籍情報


『新・明解C言語 入門編 第2版』演習問題解答例 9ー9

演習9ー9

問: 文字列sの文字の並びを反転する関数を作成せよ。たとえば、sに”SEC”と受け取ったら、その配列を”CES”に更新すること。

 void rev_string(char s[])

// Ex0909.c

#include <stdio.h>
#define NUMBER 128

void rev_string(char s[])
{
    int len = 0;
    char tmp[NUMBER];

    while (s[len]) {
        len++;
    }
    
    int i = 0;
    

    for (int i = 0; i < (len / 2); i++) {
        tmp[i] = s[i];
        s[i] = s[(len - 1) - i];
        s[(len - 1) - i] = tmp[i];
    }
    
    putchar('\n');
    
    while (s[i]) {
        printf("s[%d] = ", i);
        putchar(s[i++]);
        putchar('\n');
    }
}


int main(void)
{
    char str[NUMBER];
    int i = 0;

    printf("文字列を入力せよ:");
    scanf("%s", str);
    
    printf("反転前:\n");
    while (str[i]) {
        printf("str[%d] = ", i);
        putchar(str[i++]);
        putchar('\n');
    }

    printf("入力した文字列を格納した配列の順序を反転しました。");
    rev_string(str);

    return 0;
}

コメント

 特になし。

 


書籍情報


『新・明解C言語 入門編 第2版』演習問題解答例 9ー8

演習9ー8

問: 文字列を後ろから逆に表示する関数を作成せよ。たとえば、aに”SEC”を受け取ったら「CES」と表示すること。

 void put_stringr(const char s[])

// Ex0908.c

#include <stdio.h>
#define NUMBER 128

void put_string(const char s[])
{
    int len = 0;

    while (s[len]) {
        len++;
    }

    while (s[--len])
        putchar(s[len]);
}


int main(void)
{
    char str[NUMBER];

    printf("文字列を入力せよ:");
    scanf("%s", str);

    printf("あなたの入力した文字列を反転しました:");
    put_string(str);
    puts("");

    return 0;
}

コメント

 特になし。

 


書籍情報



Copyright (C) 2016 "HYOGOKURUMI" All Rights Reserved./「来未炳吾・平極ルミ・HYOGOKURUMI」の発達障害考察を主とした全ての発信は、相互不干渉など特別な約束をした者達を除き、どなたでもご活用できます。ただし著作権は放棄しておりません。あしからずご了承ください。詳細は著作権に関するガイドラインをご一読ください。/「HYOGOKURUMI.site」は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。