如何在C中删除引号
How to remove quotation marks in C
我们如何删除引号,例如,如果我们有:"film"
并且我们想要 return film
我的代码:
char* remove_quotes(char* s1) {
if (s1[0] == '"' && s1[strlen(s1) - 1] == '"') {
s1[0] = '[=10=]';
s1[strlen(s1) - 1] = '[=10=]';
}
return s1;
}
应该是这样的吧?
s1[0] = '[=12=]';
将阻止 strlen(s1)
return 获取正确的值。
- 您应该 return
s1 + 1
而不是 s1
以跳过第一个引号(或 space 那里有一个引号)。
试试这个:
char* remove_quotes(char* s1) {
if (s1[0] == '"' && s1[strlen(s1) - 1] == '"') {
s1[strlen(s1) - 1] = '[=10=]';
return s1 + 1;
}
return s1;
}
如果你想把"
都从原来的字符串中去掉,你可以通过memmove()
移动内存的内容,而不是移动指针。 (不要使用 strcpy()
或 memcpy()
,因为它们不支持复制到重叠目标)
char* remove_quotes(char* s1) {
size_t len = strlen(s1);
if (s1[0] == '"' && s1[len - 1] == '"') {
s1[len - 1] = '[=11=]';
memmove(s1, s1 + 1, len - 1);
}
return s1;
}
移除功能比较简单。只要有两个指针。
#include <stdio.h>
char *strdelch(char *str, char ch)
{
char *current = str;
char *tail = str;
while(*tail)
{
if(*tail == ch)
{
tail++;
}
else
{
*current++ = *tail++;
}
}
*current = 0;
return str;
}
int main(void)
{
char str[] = "Hell`o` ```w`o``r`l```d`!```";
printf("%s\n", strdelch(str, '`'));
}
我们如何删除引号,例如,如果我们有:"film"
并且我们想要 return film
我的代码:
char* remove_quotes(char* s1) {
if (s1[0] == '"' && s1[strlen(s1) - 1] == '"') {
s1[0] = '[=10=]';
s1[strlen(s1) - 1] = '[=10=]';
}
return s1;
}
应该是这样的吧?
s1[0] = '[=12=]';
将阻止strlen(s1)
return 获取正确的值。- 您应该 return
s1 + 1
而不是s1
以跳过第一个引号(或 space 那里有一个引号)。
试试这个:
char* remove_quotes(char* s1) {
if (s1[0] == '"' && s1[strlen(s1) - 1] == '"') {
s1[strlen(s1) - 1] = '[=10=]';
return s1 + 1;
}
return s1;
}
如果你想把"
都从原来的字符串中去掉,你可以通过memmove()
移动内存的内容,而不是移动指针。 (不要使用 strcpy()
或 memcpy()
,因为它们不支持复制到重叠目标)
char* remove_quotes(char* s1) {
size_t len = strlen(s1);
if (s1[0] == '"' && s1[len - 1] == '"') {
s1[len - 1] = '[=11=]';
memmove(s1, s1 + 1, len - 1);
}
return s1;
}
移除功能比较简单。只要有两个指针。
#include <stdio.h>
char *strdelch(char *str, char ch)
{
char *current = str;
char *tail = str;
while(*tail)
{
if(*tail == ch)
{
tail++;
}
else
{
*current++ = *tail++;
}
}
*current = 0;
return str;
}
int main(void)
{
char str[] = "Hell`o` ```w`o``r`l```d`!```";
printf("%s\n", strdelch(str, '`'));
}