C语言,分别用字符数组和字符指针作函数参数两种方法编程实现字符串

2025-04-26 09:21:49
推荐回答(1个)
回答1:

#include
#include
#include

void niXuArr(char arr[]);
char * niXuPoint(char *p);

int main(void)
{
char arr[] = {"abcdefghigk"}, *p = "you are the first";
printf("逆序前:%s\n逆序后:", arr);
niXuArr(arr);
printf("%s\n", arr);

printf("逆序前:%s\n逆序后:", p);

p = niXuPoint(p);
printf("%s\n", p);
return 0;
}

void niXuArr(char arr[])
{
int i = 0;
char temp = 0;

for(i = 0; i < strlen(arr) / 2; i++)
{
temp = arr[i];
arr[i] = arr[strlen(arr) - 1 - i];
arr[strlen(arr) - 1 - i] = temp;
}
}

char * niXuPoint(char *p)
{
char *pHead = NULL, *pTail = NULL, temp = 0;

int i = 0;

pHead = (char*)malloc(strlen(p));
pTail = p + strlen(p) - 1;
p = pHead;

for(i = 0; i < strlen(p); i++)
{
*pHead++ = *pTail--;
}

*pHead = '\0';

return p;
}