如何从C中的字符串中删除逗号
How to remove commas from a string in C
假设我有一个字符串“10, 5, 3”,我怎样才能去掉逗号,使字符串只是“10 5 3”?我应该使用 strtok 吗?
创建一个与当前字符串大小相同(+1 为终止字符)的新字符串,一个一个地复制每个字符,并将“,”替换为“”。
在 for
循环中你会得到这样的东西:
if (old_string[i] == ',')
new_string[i] = ' ';
else
new_string[i] = old_string[i];
i++;
那么在for
循环之后,别忘了在new_string
的末尾加上'\0'。
char *r, *w;
for (w = r = str; *r; r++) {
if (*r != ',') {
*w++ = *r;
}
}
*w = '[=10=]';
这样的事情怎么样? (我的 C 有点生锈,我手边没有编译器,所以请原谅任何语法错误)
char *string_with_commas = getStringWithCommas();
char *ptr1, *ptr2;
ptr1 = ptr2 = string_with_commas;
while(*ptr2 != '[=10=]')
{
if(*ptr2 != ',') *ptr1++ = *ptr2++;
else *ptr2++;
}
*ptr1 = '[=10=]';
您也可以使用不同的变量来存储结果,但由于结果字符串的长度保证等于或小于源字符串的长度,因此在我们进行时覆盖它应该是安全的。
对 的轻微简化。
先做电位赋值再检查空字符
const char *r = str;
char *w = str;
do {
if (*r != ',') {
*w++ = *r;
}
} while (*r++);
程序如下:
#include <stdio.h>
#include <conio.h>
int main()
{
int i ;
char n[20] ;
printf("Enter a number. ") ;
gets(n) ;
printf("Number without comma is:") ;
for(i=0 ; n[i]!='[=10=]' ; i++)
if(n[i] != ',')
putchar(n[i]) ;
}
详细说明可以参考这篇博客:http://tutorialsschool.com/c-programming/c-programs/remove-comma-from-string.php
假设我有一个字符串“10, 5, 3”,我怎样才能去掉逗号,使字符串只是“10 5 3”?我应该使用 strtok 吗?
创建一个与当前字符串大小相同(+1 为终止字符)的新字符串,一个一个地复制每个字符,并将“,”替换为“”。
在 for
循环中你会得到这样的东西:
if (old_string[i] == ',')
new_string[i] = ' ';
else
new_string[i] = old_string[i];
i++;
那么在for
循环之后,别忘了在new_string
的末尾加上'\0'。
char *r, *w;
for (w = r = str; *r; r++) {
if (*r != ',') {
*w++ = *r;
}
}
*w = '[=10=]';
这样的事情怎么样? (我的 C 有点生锈,我手边没有编译器,所以请原谅任何语法错误)
char *string_with_commas = getStringWithCommas();
char *ptr1, *ptr2;
ptr1 = ptr2 = string_with_commas;
while(*ptr2 != '[=10=]')
{
if(*ptr2 != ',') *ptr1++ = *ptr2++;
else *ptr2++;
}
*ptr1 = '[=10=]';
您也可以使用不同的变量来存储结果,但由于结果字符串的长度保证等于或小于源字符串的长度,因此在我们进行时覆盖它应该是安全的。
对
先做电位赋值再检查空字符
const char *r = str;
char *w = str;
do {
if (*r != ',') {
*w++ = *r;
}
} while (*r++);
程序如下:
#include <stdio.h>
#include <conio.h>
int main()
{
int i ;
char n[20] ;
printf("Enter a number. ") ;
gets(n) ;
printf("Number without comma is:") ;
for(i=0 ; n[i]!='[=10=]' ; i++)
if(n[i] != ',')
putchar(n[i]) ;
}
详细说明可以参考这篇博客:http://tutorialsschool.com/c-programming/c-programs/remove-comma-from-string.php