文字列をポインタに入れる方法を教えてください。
どなたか文字列をポインタに入れる方法を教えてください。下のプログラムのa=count(name1);とreverse(name1,name2,a);のとこにエラーが表示されます。ちなみに&を入れてもダメでした。整数の場合は&を入れたらできるみたいですが、文字列となるとやり方が違うのでしょうか?
問題としてはローマ字で名前を入力して表示し、文字数と名前を逆順にする2つの関数countとreverseを各自定義してそれぞれ定義しプログラムを組みなさい。姓と名の間は1文字空白を入れ、空白は文字数に含めないこと。
下のプログラムを実行させると・・・
名前を入力しなさい。
yamada hirosi //自分で入力
yamada hirosi
文字数は12
逆順にした後はisorih adamay
となるはずなんですが、なりません。どなたか宜しくお願いします。
#include "stdafx.h"
#include <stdio.h>
int count(char *name1[])
{
int i,b=0;
for(i=0;*name1[i]!='\0';i++)
{
b++;
}
b--;
return b;
}
void reverse(char *name1[],char *name2[],int a)
{
int w;
for(w=0;w<=a;w++)
{
*name2[w]=*name1[a-w];
}
*name2[w]='\0';
}
int main(int argc, char* argv[])
{
char name1[80],name2[80];
int a;
printf("名前を入力しなさい\n");
gets(name1);
printf("%s\n",name1);
a=count(name1);
printf("文字数は%d\n",a);
reverse(name1,name2,a);
printf("逆順にした後は%s\n",name2);
return 0;
}
お礼
有難う御座います。上手くいきました。