linux C语言计算某个字符串解码后的长度
时间: 2023-12-30 12:06:42 浏览: 70
在 Linux C 语言中,可以使用以下方法计算某个字符串解码后的长度:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int decode_length(char* str) {
int len = 0;
int i = 0;
while (str[i] != '\0') {
if (str[i] == '%') {
if (isxdigit(str[i+1]) && isxdigit(str[i+2])) {
len++;
i += 3;
}
else {
printf("Invalid input!\n");
exit(1);
}
}
else {
len++;
i++;
}
}
return len;
}
int main() {
char str[] = "Hello%20World%21";
int len = decode_length(str);
printf("The decoded length of \"%s\" is %d.\n", str, len);
return 0;
}
```
以上代码中,`decode_length` 函数接收一个字符串,通过遍历字符串中的每个字符来计算解码后的长度。当遇到 `%` 字符时,检查其后两个字符是否为十六进制数。如果是,则解码后的长度加一;否则,认为输入无效并退出程序。当遇到其他字符时,解码后的长度也加一。最后返回解码后的长度。
在 `main` 函数中,我们定义一个字符串 `str`,并调用 `decode_length` 函数来计算其解码后的长度。最后将结果输出到控制台。
阅读全文