Function return string method
The string pointer is passed in as a function parameter, and the pointer is returned
#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;
}
Use malloc function to dynamically allocate (note memory release)
#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;
}
Return a static local variable 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;
}
Use global variables
#include <stdio.h>
#include <string.h>
char buf[10];
void fun(void)
{
strcpy(buf,"ABCDEF");
}
int main()
{
fun();
printf("%s",buf);
}
strcpy function usage
char *strcpy(char *dest, const char *src)
- Parameter
dest: the target array or pointer to store the string (memory space must be allocated)
src: the string to be copied
- Return value
This function returns a pointer to the target string dest that has completed the assignment.
#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;
}
Reference link