私は(ubuntu正確な)Linuxシステム上にあり、Cの文字列の先頭文字を取り除きたいと思っています。私の以前のインストールでは、 )が、私は(これは一般的なUTF-8文字のコードの簡易版であることに注意してください)、それはもはや機能しないことになりました:標準Cの文字列から文字を削除する
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main()
{
int nbytes = 10000;
char *my_line, *my_char;
my_line = (char *)malloc((nbytes + 1)*sizeof(char));
strcpy(my_line,"\tinterface(quiet=true):");
printf("MY_LINE_ORIG=%s\n",my_line);
while((my_char=strchr(my_line,9))!=NULL){
strcpy(my_char, my_char+1);
}
printf("MY_LINE=%s\n",my_line);
return 0;
}
はremoveTabを実行すると、私は
gcc -o removetab removetab.c
を行う私はget
MY_LINE_ORIG= interface(quiet=true):
MY_LINE=interfae(quiet==true):
「=」と欠落している「c」の重複に注意してください! どうしたらいいですか?コードはUTF-8文字列をサポートする必要があります。
ちなみに、このアルゴリズムをO(N!)のようなものにして、妥当なアルゴリズムでO(N)にすることができます。 –