我要实现一个向左和向右执行循环旋转的函数.所以我为这两个操作写了同样的东西.例如,如果你正在旋转左边1010变成0101.这是对的吗?
unsigned char rotl(unsigned char c) {
int w;
unsigned char s = c;
for (w = 7; w >= 0; w--) {
int b = (int)getBit(c, w);//
if (b == 0) {
s = clearBit(s, 7 - w);
} else if (b == 1) {
s = setBit(s, 7 - w);
}
}
return s;
}
unsigned char getBit(unsigned char c, int n) {
return c = (c & (1 << n)) >> n;
}
unsigned char setBit(unsigned char …Run Code Online (Sandbox Code Playgroud) 在执行的比较次数和算法所需的存储量方面,三者的相对优势是什么?他们中的哪一个是他们的运行时间保证?
我什么时候进入;
char string[10^4];
scanf("%s", string);
Run Code Online (Sandbox Code Playgroud)
我遇到了运行时错误;
char string[10000];
scanf("%s", string);
Run Code Online (Sandbox Code Playgroud)
工作得很好?
顺便说一句,当输入不是一个大字符串时,两者都工作正常.例如,当字符串是"abc",它在两种情况下都工作正常,但是当它是"wqrjljowspxmsvkjkkogvcyheydhikggaypnjdkbvhnpcxyojowhquouuuceeimgicurheuenjtritfshbbyxpsrlwxpfjwpnsjxwdbjnxaxqhryisyhkqavnxnuillwdutzywkntkkmtckbuikga",它只适用于第二种情况.
原谅我非常长的字符串.这是我的测试用例的一部分.