P80 例4-1 名和姓的对换问题。英国人和美国人姓名的书写形式是“名在前,姓在后”,但在有些情况下,需要把姓名写成“姓在前,名在后,中间加一个逗号”的形式。编写一个程序实现把“名在前,姓在后”的姓名表示法转换成“姓在前,名在后,中间加一个逗号”的姓名表示法。
#include<stdio.h>
#include<string.h>
void ReverseName(char *name
,char *newName
)
{
char *p
;
p
=strchr(name
,' ');
*p
='\0';
strcpy(newName
,p
+1);
strcat(newName
,",");
strcat(newName
,name
);
*p
=' ';
}
int main()
{
char name
[]="William Topp",newName
[30];
ReverseName(name
,newName
);
printf("ReverseName:%s",newName
);
return 0;
}
在VS2019下,需将源文件的strcpy和stract做一些修改,所以源文件为:
#include<stdio.h>
#include<string.h>
void ReverseName(char *name
,char *newName
)
{
char *p
;
p
=strchr(name
,' ');
*p
='\0';
strcpy_s(newName
,30,p
+1);
strcat_s(newName
,30,",");
strcat_s(newName
,30,name
);
*p
=' ';
}
int main()
{
char name
[]="William Topp",newName
[30];
ReverseName(name
,newName
);
printf("ReverseName:%s",newName
);
return 0;
}