c++string取反
时间: 2023-10-22 16:04:41 浏览: 193
要对 C 字符串进行取反操作,可以使用以下方法:
1. 反转字符串:
- 首先,使用`strlen`函数获取字符串的长度。
- 然后,使用两个指针,一个指向字符串的开头,一个指向字符串的末尾。
- 通过交换两个指针所指向的字符,并同时向中间移动,直到两个指针相遇。
- 这样就可以实现字符串的反转。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void reverseString(char* str) {
int len = strlen(str);
char* start = str;
char* end = str + len - 1;
while (start < end) {
char temp = *start;
*start = *end;
*end = temp;
start++;
end--;
}
}
int main() {
char str[] = "Hello, World!";
printf("原始字符串: %s\n", str);
reverseString(str);
printf("反转字符串: %s\n", str);
return 0;
}
```
运行以上代码,输出将会是:
```
原始字符串: Hello, World!
反转字符串: !dlroW ,olleH
```
相关问题
对string str=“01”按位取反
对于字符串 "01" 按位取反,需要先把字符串转换成二进制数,然后对二进制数的每一位进行按位取反,最后再把得到的二进制数转换回字符串即可。
例如,对于字符串 "01",它对应的二进制数是 "00110001",按位取反后变成 "11001110",再把它转换回字符串就是 "1100"。
以下是一个示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
string bitwise_not(string str) {
string result = "";
for (int i = 0; i < str.size(); i++) {
result += (char)(~str[i] & 0xFF);
}
return result;
}
int main() {
string str = "01";
string result = bitwise_not(str);
cout << result << endl;
return 0;
}
```
输出结果为:
```
1100
```
如何string str=“01”按位取反得到10
对于字符串 "01" 按位取反得到的结果是 "1100",因为字符串 "01" 对应的二进制数是 "00110001",按位取反后变成 "11001110",再把它转换回字符串就是 "1100"。
如果要把字符串 "1100" 转换成十进制数 10,可以使用标准库中的 stoi() 函数,将字符串转换成整数,如下所示:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "1100";
int x = stoi(str, nullptr, 2);
cout << x << endl; // 输出 10
return 0;
}
```
其中,第二个参数为nullptr表示使用默认的基数(即十进制),第三个参数为2表示使用二进制作为基数进行转换。
阅读全文