ページ 11

関数の作成の仕方が分かりません

Posted: 2017年1月18日(水) 23:04
by ganbaregenki
下のプロトタイプ宣言を参考に関数を作成したいのですが、さっぱりわかりません。

#include <stdio.h>

void yoko(char s[]);
void kuuhaku(char s[], int n);
void tate(char s[]);

int main(void)
{
char name[50];
printf("名前は?(全角入力) ");
scanf("%s", name);
printf("\n");
yoko(name);
printf("\n");
kuuhaku(name, 3);
printf("\n");
tate(name);
printf("\n");
return 0;
}

kuuhaku(name, 3); のところは第二引数で文字と文字の間の空白の数(半角で3文字分)を表しているそうです。
これで例えば、全角で ミカサ と入力すると
ミカサ

ミ カ サ




と出力されるようにしたいんです。
お願いします<(_ _)>

Re: 関数の作成の仕方が分かりません

Posted: 2017年1月18日(水) 23:21
by box
こんな感じ?ベストとは限らないけど。

コード:

#include <stdio.h>
#include <string.h>

void yoko(char s[]);
void kuuhaku(char s[], int n);
void tate(char s[]);

int main(void)
{
    char name[50];

    printf("名前は?(全角入力) ");
    scanf("%s", name);
    printf("\n");
    yoko(name);
    printf("\n");
    kuuhaku(name, 3);
    printf("\n");
    tate(name);
    printf("\n");
    return 0;
}

void yoko(char s[])
{
    printf("%s", s);
}

void kuuhaku(char s[], int n)
{
    int len = strlen(s), i, j;

    for (i = 0; i < len / 2; i++) {
        putchar(s[2*i]), putchar(s[2*i+1]);
        for (j = 0; j < n; j++) {
            putchar(' ');
        }
    }
}

void tate(char s[])
{
    int len = strlen(s), i;

    for (i = 0; i < len / 2; i++) {
        putchar(s[2*i]), putchar(s[2*i+1]);
        putchar('\n');
    }
}

Re: 関数の作成の仕方が分かりません

Posted: 2017年1月19日(木) 00:38
by みけCAT
ソースコードを提示する際は、BBCodeが有効な(無効でない)状態でBBCodeのcodeタグで囲んでいただくと、見やすくてありがたいです。

使用する文字コードは何ですか?

Re: 関数の作成の仕方が分かりません

Posted: 2017年1月19日(木) 22:46
by ganbaregenki
すみません。初めてトピックを建てたのでよくわかりませんでした(_ _)
次からは気をつけます!

C言語でお願いします。

Re: 関数の作成の仕方が分かりません

Posted: 2017年1月19日(木) 22:51
by ganbaregenki
boxさんの書かれたコードで無事できました。
皆さんありがとうございました。