文字列ポインタが関数パラメータとして渡され、ポインタが返されます
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char * fun(char *p)
{
char *eg="STM32";
strcpy(p,eg);
return p;
}
int main()
{
char *name;
name=(char*)malloc(20);
fun(name);
printf("%s",name);
free(name);
return 0;
}
malloc関数を使用して動的に割り当てます(メモリ解放に注意してください)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* string()
{
char *name;
name=(char *)malloc(20);
strcpy(name,"Engineer");
return name;
}
void fun_free(void **p)
{
free (*p);
*p=NULL;
return;
}
int main()
{
char* p;
p=string();
printf("%s",p);
fun_free(p);
return 0;
}
静的ローカル変数staticを返します
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *changename();
int main()
{
char* name1;
name1=changename();
printf("%s",name1);
return 0;
}
char* changename()
{
static char name[10];
strcpy(name,"Engineer");
return name;
}
グローバル変数を使用する
#include <stdio.h>
#include <string.h>
char buf[10];
void fun(void)
{
strcpy(buf,"ABCDEF");
}
int main()
{
fun();
printf("%s",buf);
}
strcpy関数の使用法
char *strcpy(char *dest, const char *src)
- パラメータ
dest:文字列を格納するターゲット配列またはポインタ(メモリスペースを割り当てる必要があります)
src:コピーする文字列
- 戻り値
この関数は、割り当てを完了したターゲット文字列destへのポインタを返します。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *name;
char *p="STM32F103RCT6";
name=(char*)malloc(20);
strcpy(name,p);
printf("%s",name);
free(name);
return 0;
}
参照リンク