0
点赞
收藏
分享

微信扫一扫

[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。

朱小落 2022-05-26 阅读 107


指针练习题
题目:字符串逆序
内容与要求:使用指针,写一个函数,可以逆序一个字符串的内容。


举例:
输入: I Love You.
输出: .uoY evoL I
 
输入: abc
输出: cba


实现代码:

#include 
#include

int My_strlen(char* s)
{
//求长度 指针减指针的方法求长度
char* start = s;
while (*s != '\0')
{
s++;
}
return s - start;
}
int main()
{
int i = 0;
//创建字符数组
char arr[1000];
//使用gets函数输入字符串
gets(arr);
//用指针求字符串长度
int len = My_strlen(arr);
//逆序打印字符串
char* p = arr+len-1;//最后元素的地址
for (i = 0; i < len; i++)
{
putchar(*(p - i));
}
return 0;
}

[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_C语言

代码分析:

[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_指针_02[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_指针_03

首先在内存开辟一块字符数组空间,这里使用gets函数输入我们可以通过MSDN查询了解一下gets函数的使用方法和相关注意事项。

[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_C语言_04[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_C语言_05

 我们可以看到:

The gets function reads a line from the standard input stream stdin and stores it in buffer. The line consists of all characters up to and including the first newline character ('\n'). gets then replaces the newline character with a null character ('\0') before returning the line. In contrast, the fgets function retains the newline character. _getws is a wide-character version of gets; its argument and return value are wide-character strings.
[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_C语言_06[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_C语言_07

我们可以知道gets函数可以读取字符串,并且是读到 '\n'。

当我们当得知这些之后,我们就可以对代码进行分析:

逆序字符串的原理:

使用指针将给定字符串中的每个字符由后向前依次打印,因此我们首先要取到字符数组中最后一个字符的地址,我们知道,指针是默认读取数组首元素的地址,因此我们可以使用指针减指针的方法来计算字符串的长度,再进行指针加减运算即可获得最后一个字符的地址。

[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_C语言_08[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_指针_09

这里我们自定义函数My_strlen,函数的方法我们使用指针减指针的方法求出字符串的长度

 [ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_指针_10[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_指针_11

这样我们就可以取到最后一个元素的地址


char* p = arr+len-1;//最后元素的地址


 最后在循环打印出字符串就得到了我们最后的结果。

测试:


输入: abc
输出: cba


[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_C语言_12[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_指针_13


输入: I Love You.
输出: .uoY evoL I


[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_C语言_14[ C语言练习题 ]字符串逆序,使用指针,写一个函数,可以逆序字符串的内容。_指针_15

 总结:

本篇文章通过使用指针解决了字符串的逆序输出问题,使用了指针减指针的方法求出了未知字符串的长度。

(本篇完)



举报

相关推荐

0 条评论