"南开一百题word版2008年10月:逆置字符串函数编程题"

需积分: 18 36 下载量 188 浏览量 更新于2024-03-23 收藏 162KB DOC 举报
南开一百题Word版是一份2008年10月整理的题目集合,其中包含了100道二级C题目。其中一道题目要求编写一个函数fun(char *s),这个函数的功能是将字符串中的内容逆置。举例来说,如果字符串原本为"abcdefg",那么调用该函数之后,字符串中的内容将变为"gfedcba"。 这道题目要求我们设计一个函数来实现字符串内容的反转,这需要考虑如何有效地操作字符串指针和数组。首先,我们需要用一个循环来遍历字符串数组,确定字符串的长度。然后,我们可以用两个指针分别指向字符串的起始和末尾位置,通过交换两个指针所指向的字符来实现字符串的反转。 具体的实现可以是这样的: ```c #include <stdio.h> #include <string.h> void fun(char *s) { int len = strlen(s); int i = 0; int j = len - 1; while (i < j) { char temp = s[i]; s[i] = s[j]; s[j] = temp; i++; j--; } } int main() { char str[] = "abcdefg"; printf("Before reverse: %s\n", str); fun(str); printf("After reverse: %s\n", str); return 0; } ``` 在这段代码中,我们首先计算了字符串的长度,然后使用两个指针i和j来分别指向字符串的起始和末尾位置。在一个循环中,我们交换两个指针所指向的字符,并分别向中间移动直到i >= j。最后,我们可以在主函数中调用fun函数来实现字符串的反转,并输出结果。 通过这个例子,我们学习到了如何利用指针和数组来实现字符串的反转操作。这道题目考察了我们对于指针的理解和运用,同时也提高了我们对于字符串处理的能力。希望通过不断练习和探索,我们能够更加熟练地处理字符串操作题目,提升自己的编程能力。