在许多情况下,我们可能需要在 C++ 编程中翻译一个字符串,这可能只包括打印一个翻译的字符串,或者在某些情况下,可能需要在地址上永久翻译字符串。
在本教程中,我们将学习如何完成这两个任务,同时使用不同的 预定义和 用户定义函数。
在 C++ 中翻译一个字符串
逆行 字符串是指一个字符串上的操作,其中的字符序列被逆转,例如,考虑到 'str' 包含一个字符串 "JournalDev"。
在字符串 **'str'**上发生逆转操作后,内容应该被逆转,因此现在, **'str'**应该包含字符串 "veDlanruoJ"。
现在让我们看看如何使用各种技术在 ** C++ ** 字符串上执行这种逆转操作。
在 C++ 中使用反向() 函数
在 **C++**中内置的反向函数 reverse()
直接逆转一个字符串. 鉴于双向 开始和 结束迭代器都作为参数传递。
该函数在算法头文件中定义,下面的代码描述了使用反向()
函数,
1#include <algorithm>
2#include<iostream>
3#include<string>
4using namespace std;
5int main()
6{
7 string str = "Journal Dev reverse example";
8 reverse(str.begin(), str.end());
9 cout<<"\n"<<str;
10 return 0;
11}
出发点:**
用力( )
strrev()
是 C++ 中的预定义函数,在 cstring.h 标题文件中定义。
此外,它只需要字符串的基本地址作为它的参数,并相应地扭转字符串,让我们看看如何在 **C++**中使用strrev()
函数来扭转字符串。
1#include<iostream>
2#include<cstring>
3using namespace std;
4int main()
5{
6 char str[] ="Journal Dev reverse example";
7 strrev(str);
8 cout<<"\n"<<str;
9 return 0;
10}
出发点:**
上面的代码很清楚地说明了函数 strrev()
的运作方式,对于一个字符串 'str', 函数成功地扭转了它,正如我们在输出中所看到的那样。
打印一个字符串逆转
在某些情况下,我们可能不需要更改字符串,而只需要以反向的方式打印它。这可能是永久字符串,无法修改的。我们可以使用循环打印任何字符串以反向模式。
1#include<iostream>
2#include<string>
3using namespace std;
4int main()
5{
6 string str="Journal Dev reverse example";
7 int i;
8 cout<<"Printing string in reverse\n";
9 for(i = str.length() - 1; i >= 0; i--)
10 {
11 cout<<str[i];
12 }
13 return 0;
14}
出发点:**
- 在上面给出的代码中,我们首先初始化了一个字符串‘str’.
- 在为循环的内部,在打印字符串时,请注意,我们已经初始化了 iterator 'i' 以值
str.length()-1
. 这意味着我们按字符打印了字符串,但从最后的索引开始 - 注意:
length()
返回字符串的长度。
创建自己的字符串逆转函数 My_rev()
到目前为止,我们已经学会了如何用不同的 预定义函数打印一个字符串,以及使用不同的 预定义函数翻译字符串,现在让我们创建或定义我们自己的函数,名为My_rev()
,以扭转给定的字符串。
1#include<iostream>
2#include<string>
3#include<cstring>
4using namespace std;
5char *My_rev(char *str)
6{
7 int i,len=0,n;
8 char temp;
9 len=strlen(str);
10 n=len-1;
11 for(i = 0; i <=(len/2); i++)
12 {
13 temp=str[i];
14 str[i]=str[n];
15 str[n]=temp;
16 n--;
17 }
18 return str;
19}
20int main()
21{
22 char My_string[]="Journal Dev reverse example";
23 cout<<"Reverse string using My_rev()...\n";
24 My_rev(My_string);
25 cout<<My_string;
26 return 0;
27}
出发点:**
在上面的代码中,‘My_rev()’是扭转字符串的函数,因为字符串的基地址被传递为一个参数 *在My_rev()函数内部, *str是存储字符串的基地址的指针。在我们的情况下,str指向字符串的第一个元素My_string
- len存储字符串的长度。而,n是最后元素的索引 *在函数中,我们试图从两端交换字符串的个别字符,这意味着我们继续从字符串My_string 和字符串Index的元素交换,直到我们达到字符串的长度。在上面的