文字列の文字の並びを反転する関数
Posted: 2015年8月26日(水) 16:35
#include<stdio.h>
int str_length(const char s[][128],int n)
{
int len = 0;
while(s[n][len])
len++;
return len;
}
void rev_string(char s[][128],int n)
{
int i, j, num;
char tmp;
for(i = 0;i < n;i++)
num = str_length(s,i);
for(j = 0;j < (num/2) ;j++)
{
tmp = s[j];
s[j] = s[num - j - 1];
s[num - j - 1] = tmp;
}
}
void put_strary(const char s[][128],int n)
{
int i;
for(i = 0;i < n;i++)
printf("s[%d] = \"%s\"\n",i,s);
}
int main(void)
{
char s[][128] = {"SEC","ABC"};
int i;
put_strary(s,2);
rev_string(s,2);
puts("文字の並びを反転すると以下のようになる.");
put_strary(s,2);
return 0;
}
これでは反転しませんでした何がダメなんでしょう?
int str_length(const char s[][128],int n)
{
int len = 0;
while(s[n][len])
len++;
return len;
}
void rev_string(char s[][128],int n)
{
int i, j, num;
char tmp;
for(i = 0;i < n;i++)
num = str_length(s,i);
for(j = 0;j < (num/2) ;j++)
{
tmp = s[j];
s[j] = s[num - j - 1];
s[num - j - 1] = tmp;
}
}
void put_strary(const char s[][128],int n)
{
int i;
for(i = 0;i < n;i++)
printf("s[%d] = \"%s\"\n",i,s);
}
int main(void)
{
char s[][128] = {"SEC","ABC"};
int i;
put_strary(s,2);
rev_string(s,2);
puts("文字の並びを反転すると以下のようになる.");
put_strary(s,2);
return 0;
}
これでは反転しませんでした何がダメなんでしょう?