関数の引数をポインタ変数で与えたい
Posted: 2006年12月12日(火) 02:16
// 反転
#include <stdio.h>
#include <string.h>
void strreverse(char *);
int main(void)
{
char str[32];
printf("文字を入力してください--->");
gets(str);
strreverse(&str);// 文字列をひっくり返す関数
printf("反転した文字は----------->%s\n",str);
return 0;
}
/*---------------------------------------------------------------------*/
void strreverse(char *s[])
{
int i,length;
char temp[32];
strcpy(temp,*s);
length = strlen(temp);
for(i=0;i<length;i++) {
*s = temp[length-i-1];
}
*s = '\0';
}
以上のようにして入力された文字列をstrreverse内で
ひっくり返したものを表示するプログラムを作成して
いるのですが、
c:\VC++_WORKS\kadai8\kadai8.cpp(13): error C2664: 'strreverse' : 1 番目の引数を 'char (*__w64 )[32]' から 'char *' に変換できません。
c:\VC++_WORKS\kadai8\kadai8.cpp(27): warning C4267: '=' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。
となってしまいます。char *変換させる方法ありますか?
#include <stdio.h>
#include <string.h>
void strreverse(char *);
int main(void)
{
char str[32];
printf("文字を入力してください--->");
gets(str);
strreverse(&str);// 文字列をひっくり返す関数
printf("反転した文字は----------->%s\n",str);
return 0;
}
/*---------------------------------------------------------------------*/
void strreverse(char *s[])
{
int i,length;
char temp[32];
strcpy(temp,*s);
length = strlen(temp);
for(i=0;i<length;i++) {
*s = temp[length-i-1];
}
*s = '\0';
}
以上のようにして入力された文字列をstrreverse内で
ひっくり返したものを表示するプログラムを作成して
いるのですが、
c:\VC++_WORKS\kadai8\kadai8.cpp(13): error C2664: 'strreverse' : 1 番目の引数を 'char (*__w64 )[32]' から 'char *' に変換できません。
c:\VC++_WORKS\kadai8\kadai8.cpp(27): warning C4267: '=' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。
となってしまいます。char *変換させる方法ありますか?