演習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;
}
コメント
特になし。
書籍情報
コメント