簡體   English   中英

使用字符數組在 c++ 中反轉字符串

[英]reverse string in c++ using char array

我嘗試使用 char 數組反轉字符串,但在 output 中它會打印一些垃圾值,我不知道是什么原因,而且它只發生在大字符串中。

我的代碼

string reverseWord(string str){
  int j = 0, n=0;
  
  n = str.length();
  char t[n]={0};
  for(int i=n-1;i>=0;i--)
  {
     t[j]=str[i];
     j+=1;
  }
  return t;
}

輸入 = APFGMRZXIFPSXKOQDRRQJBBZ output = ZBBJQRRDQOKXSPFIXZRMGFPAB@

我想知道@這兩個垃圾值背后的原因

使用gfg的在線IDE。

C 風格的字符串必須以空字符'\0'結尾。

而不是使用標准 C++ 中沒有的可變長度數組,您應該直接分配string ,因為您正在返回它。 (假設這里的string表示std::string

string reverseWord(string str){
  int j = 0, n=0;
  
  n = str.length();
  string t(n); // allocate string instead of VLA
  for(int i=n-1;i>=0;i--)
  {
     t[j]=str[i];
     j+=1;
  }
  return t;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM