C言語のきほん「文字列の基本(5)」

スポンサーリンク
プログラミング C言語

今回は、「配列に格納されている文字列の文字の並びを反転するプログラム」である。

なお、本プログラムは、Windows 11 Home(23H2)上で、  Visual Studio Code(1.89.1)を使用して作成し、gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0でコンパイルしている。

配列に格納されている文字列の文字の並びを反転するプログラム

//配列に格納されている文字列の文字の並びを反転するプログラム

#include <stdio.h>

#define LEN 128

//文字列sの長さを返す
int str_length(const char s[])
{
    int len = 0;
    while(s[len])
        len++;
    return len;
}

//文字列sの文字の並びを反転する
void rev_string(char s[])
{
    int len =str_length(s);
    for (int i = 0; i < len/2; i++)
    {
       char temp = s[i];
       s[i] = s[len-i-1];
       s[len-i-1] = temp;
    }
    
}

//文字列の配列の文字の並びを反転する
void rev_strings(char s[][LEN],int n)
{
    for (int i = 0; i < n; i++)
        rev_string(s[i]);    
    
}


//文字列の配列を表示
void put_strary(const char s[][LEN],int n)
{
    for (int i = 0; i < n; i++)
        printf("s[%d] = \"%s\"\n",i,s[i]);
    
}

int main(void)
{
    char cs[][LEN]= {"SMALL","ABC","12345"};

    rev_strings(cs,3);
    put_strary(cs,3);

    return 0;
}

実行結果

s[0] = "LLAMS"
s[1] = "CBA"
s[2] = "54321"

関数rev_stringsは、n個の文字列の文字の並びを反転する関数である。
個々の文字列の反転を関数rev_stringに委ねている。

関数put_straryは、n個の文字列の並びを表示する関数である。

なお、関数rev_stringsと関数put_straryが受け取れるのはn行LEN列の2次元配列に限られる。

参考)新・解きながら学ぶC言語 第2版 柴田望洋 (監修・著)、 由梨かおる(著)SBクリエイティブ

コメント

タイトルとURLをコピーしました