私は char* を受け取り、それを「スローモーション」で出力する小さな関数を C で書いています。
私のコードは次のとおりです。
void funnyprint(char* string)
{
int i=0;
int len=strlen(string);
if(len==0)
return;
int k=0;
char temp[1];
temp[0]=string[k];
for(i=0; i<7142800*len; i++)
{
fflush(stdout);
if((i!=0) && (i%7142800==0))
{
printf(temp);
k++;
if(k<len)
temp[0]=string[k];
}
}
}
さて、問題は文字列を出力せず、部分的に私の char* を与え、部分的に意味不明なものを代わりに与えることです。
問題はメモリにあることがわかったので、「string」を「new」と呼ばれる新しいchar *にコピーしてみました。私はそのコードを手に入れました:
void funnyprint(char* string)
{
int i=0;
int len=strlen(string);
if(len==0)
return;
int k=0;
char temp[1];
char * new=malloc(len*sizeof(char));
strncpy(new,string,len);
temp[0]=new[k];
for(i=0; i<7142800*len; i++)
{
fflush(stdout);
if((i!=0) && (i%7142800==0))
{
printf(temp);
k++;
if(k<len)
temp[0]=new[k];
}
}
}
それでも結果は変わりませんでした。ここで小さな問題が欠けていると感じています。誰かが私を啓発してくれればとてもうれしいです。
ありがとう!