C语言去除掉字符串前后引号,不自己另外定义函数
时间: 2024-12-20 17:16:03 浏览: 8
在C语言中,如果你想从一个字符串中移除前后引号(通常指单引号 ' 或双引号 "),你可以通过遍历字符串并在找到引号之前和之后截取字符串来实现。这里是一个简单的示例,假设你有一个指向包含引号的字符串的指针:
```c
#include <stdio.h>
#include <string.h>
char* remove_quotes(char* str) {
int start = 0;
int end = strlen(str) - 1;
// 查找开始的引号
while (str[start] != '\'' && str[start] != '\"') {
if (start >= end) {
return NULL; // 如果字符串为空或者只有一个引号,则无法去除
}
start++;
}
// 查找结束的引号
while (str[end] != '\'' && str[end] != '\"') {
end--;
}
// 如果找不到引号,返回原字符串
if (start == end) {
return str;
}
// 截取并返回去掉引号后的部分
char* result = malloc(end - start + 1);
strncpy(result, str + start + 1, end - start); // +1是为了跳过第一个引号
result[end - start] = '\0'; // 添加终止符
return result;
}
int main() {
char str[] = "\"Hello, world!\"";
char* new_str = remove_quotes(str);
printf("Original string: %s\n", str);
printf("New string without quotes: %s\n", new_str);
free(new_str); // 别忘了释放内存
return 0;
}
```
阅读全文