相关疑难解决方法(0)

是否有一种有效且安全的方法来反转数组中的所有元素?

我需要反转大型数组,使第一个元素成为最后一个,最后一个元素成为第一个元素.

到目前为止,我通过创建此数组的副本,然后向后迭代原始数据并写入副本来完成此操作.之后,将副本写回原始版本.

通过同时访问第一个和最后一个元素,将其中一个存储在temp var中并交换值,是否可以在一个循环中安全地执行此操作?

c arrays

0
推荐指数
1
解决办法
1637
查看次数

c ++ segfault:char指针

可能重复:
如何在C或C++中反转字符串?
为什么这个C代码会导致分段错误?
在c中修改char指针的值会产生段错误

运行一个非常简单的代码示例

#include <stdlib.h>
#include <iostream>

char* last_char(char* s){
  char* last = s;
  while (*last) ++last;
  return last;
}

char* in_place_reverse(char* s) {
  char* left = s;
  char* right = last_char(s);
  char temp;

  while( left < right ) {
    temp = *left;
    *left = *right;
    *right = temp;

    left++;
    right--;
  }

  return s;
}

int main(){
  char * s = "letters\n";
  std::cout << in_place_reverse(s);
}
Run Code Online (Sandbox Code Playgroud)

我一直都有

 Segmentation fault
Run Code Online (Sandbox Code Playgroud)

但是从我的角度来看,我在代码中没有做任何违法的事情.请帮我确定是什么问题.

PS我编译

g++ example.c
Run Code Online (Sandbox Code Playgroud)

c c++ pointers char segmentation-fault

-1
推荐指数
1
解决办法
944
查看次数

单线用于反转弦

有没有办法C用最小(可能是单行)源代码行来反转字符串.C++通过使用这里的#include <algorithm>建议支持它.我想知道C是否也支持任何这样的机制.

c

-2
推荐指数
2
解决办法
1230
查看次数

为什么这个用于反转字符串的代码在C++中不起作用?

string binary = "12345";
string binary2 = "";
size = binary.size() - 1;
for (i = size; i >= 0; i--)
{
    binary2[size - i] = binary[i];
}
cout << binary2;
Run Code Online (Sandbox Code Playgroud)

我在运行时不断收到下标错误.但是,我不知道问题是什么.如果可能的话,我将不胜感激.

c++

-2
推荐指数
1
解决办法
92
查看次数

用c ++反转一个字符串

我刚开始用c ++编写代码.

我写了一个反向字符串的代码.我得到空结果.

void main ()
{
    string str1="abcde";string rev="";
    int n=str1.size();
    for(int i=n-1;i>=0;i--)
    {
        rev += str1[i];
    }
printf("%s \n", rev);
}
Run Code Online (Sandbox Code Playgroud)

有谁能告诉我.

c++ string algorithm reverse

-2
推荐指数
1
解决办法
296
查看次数

如何将反向字符串另存为新字符串?

我正在尝试做回文检查。因此,为了解决这个问题,我想将原始字符串与反向字符串进行比较。但是,如何在不覆盖旧字符串的情况下保存反向字符串?

reverse(myString.begin(), myString.end())将反转我的字符串,但它将替换myString,并且这样做string reversedString = reverse(myString.begin(), myString.end());不起作用。这是我到目前为止的内容:

int main()
{
    cout << "Enter a string: ";
    string myString;
    getline(cin, myString);
    cout << endl;

    string reversedString = reverse(myString.begin(), myString.end());

    cout << reversedString;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ string

-2
推荐指数
1
解决办法
111
查看次数

标签 统计

c++ ×4

c ×3

string ×2

algorithm ×1

arrays ×1

char ×1

pointers ×1

reverse ×1

segmentation-fault ×1