//字符串倒序str_inverted_order.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *str_inverted_order(const char *str)
{
int main (void)
{
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *str_inverted_order(const char *str)
{
int len=0;
len = strlen(str);
char *dest = NULL;
dest = (char *)malloc(sizeof(char)*(len+1)); //为 dest字符指针分配一定长度的空间
char *d = dest;
char *order = (char *)(str + len-1); //指向str的最后一个字符
//char *order = (char *)(&(str[len-1]));
int i=0;
for (i=0;i<len;i++)
{
*d++ = *order--;
}}
*d = '\0';
return dest;
int main (void)
{
printf("%s\n",str_inverted_order("abcdef"));
ree(str_inverted_order("abcdef"));
return 0;
}
执行结果:
或者:将主函数改成下面这样
int main (int argc, char *argv[])
{
printf("%s\n",str_inverted_order(argv[1]));
free(str_inverted_order(argv[1]));
return 0;
}
/***************************main函数的两个形参*****************************************
int main (int argc, char *argv[])
1、argc是用户(通过命令行来)执行这个程序时,实际传递的参数个数。注意这个个数是包含程序执行本身的;
2、argv是一个字符串数组,这个数组中存储的字符串就是一个个的传参。
譬如我们执行程序时使用./a.out abcd
则argc = 2
则argv[0] = "./a.out" argv[1] = "abcd"
****************************************************************************************/
执行效果如下: