相关疑难解决方法(0)

用C反转句子?

我刚刚编写了一个程序,无论用户提供什么,都会反转一个句子.例如:如果用户输入"你好吗",我的程序会生成"uoy era woH".

我写的程序如下所示.我只是有一个疯狂的直觉,可以有一个比这更聪明的程序.非常感谢您提供的宝贵意见或者比这更好的计划也是最受欢迎的.

int ReverseString(char *);
main() {
  char *Str;
  printf("enter any string\n");
  gets(Str);
  ReverseString(Str);
  getch();
}
int ReverseString(char *rev) {
  int len = 0;
  char p;
  while(*rev!='\0') {
    len++;
    rev++;
  }
  rev--;
  while(len>0) {
    p = *rev;
    putchar(p);
    rev--;
    len--;
  }
}
Run Code Online (Sandbox Code Playgroud)

非常感谢.

c string

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

反转字符数组

可能重复:
C++反向数组

如何反转字符数组?像这样:

char word1[10] = "this"; 
char word2[10] = word1[10] // in reverse 
cout<<word2; // I want it to output "siht"
Run Code Online (Sandbox Code Playgroud)

c++

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

数组反向 - 比使用临时对象切换要慢

我正在阅读一个关于反转数组的最快方法的问题(最终不那么令人兴奋),我在链接处看到了一个有趣的评论:

/sf/answers/79031991/

引用的解决方案显示了这两种可能性

//Possibility #1
void reverse(char word[])
{
    int len=strlen(word);
    char temp;
    for (int i=0;i<len/2;i++)
    {
            temp=word[i];
            word[i]=word[len-i-1];
            word[len-i-1]=temp;
    }
}

//Possibility #2
void reverse(char word[])
{
    int len=strlen(word);
    for (int i=0;i<len/2;i++)
    {
        word[i]^=word[len-i-1];
        word[len-i-1]^=word[i];
        word[i]^=word[len-i-1];
    }
}
Run Code Online (Sandbox Code Playgroud)

并且评论指出:"使用XOR比使用临时对象进行交换慢得多."

没有人对此提出质疑.所以,我的问题是:

  1. 这是真的?
  2. 为什么这是真的?
  3. 如果这是一个非内置类型的阵列,它仍然是真的吗?

c++ algorithm xor

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

标签 统计

c++ ×2

algorithm ×1

c ×1

string ×1

xor ×1