C++ 中的反向字符串

在许多情况下,我们可能需要在 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}

出发点:**

Use Of Reverse string in c++

用力( )

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}

出发点:**

Reverse Using Strrev reverse string in C++

上面的代码很清楚地说明了函数 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}

出发点:**

Reverse Print

  • 在上面给出的代码中,我们首先初始化了一个字符串‘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}

出发点:**

User defined My_rev() Output

在上面的代码中,‘My_rev()’是扭转字符串的函数,因为字符串的基地址被传递为一个参数 *在My_rev()函数内部, *str是存储字符串的基地址的指针。在我们的情况下,str指向字符串的第一个元素My_string

  • len存储字符串的长度。而,n是最后元素的索引 *在函数中,我们试图从两端交换字符串的个别字符,这意味着我们继续从字符串My_string 和字符串Index的元素交换,直到我们达到字符串的长度。在上面的

参考

Published At
Categories with 技术
Tagged with
comments powered by Disqus