字符串指针作为函数形参传入,并返回该指针
#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;
}
参考链接