本题要求实现一个字符串逆序的简单函数。\n\n函数接口定义:\nvoid f( char *p );\n函数f对p指向的字符串进行逆序操作。要求函数f中不能定义任何数组,不能调用任何字符串处理函数。
时间: 2023-04-20 15:03:11 浏览: 194
PTA 6-13 函数实现字符串逆序
题目要求实现一个字符串逆序的函数,函数接口定义为void f(char *p),即对p指向的字符串进行逆序操作。要求函数中不能定义任何数组,不能调用任何字符串处理函数。
实现思路可以使用两个指针,一个指向字符串的头部,一个指向字符串的尾部,然后交换两个指针所指向的字符,直到两个指针相遇为止。具体实现如下:
void f(char *p) {
char *start = p; // 指向字符串头部的指针
char *end = p; // 指向字符串尾部的指针
while (*end) { // 找到字符串的尾部
end++;
}
end--; // 指向字符串最后一个字符
while (start < end) { // 交换两个指针所指向的字符
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
这样就实现了一个简单的字符串逆序函数,而且没有定义任何数组,也没有调用任何字符串处理函数。
阅读全文