トリミングに関するウィキペディアの記事を読んでいて、このltrimの実装を見ました(左トリム)
char *
ltrim(char *str)
{
char *ptr;
int len;
for (ptr = str; *ptr && isspace((int)*ptr); ++ptr);
len = strlen(ptr);
memmove(str, ptr, len + 1);
return str;
}
memmove をスキップして ptr ではなく返すと、悪いことが起こりますか?
char *
ltrim(char *str)
{
char *ptr;
int len;
for (ptr = str; *ptr && isspace((int)*ptr); ++ptr);
return ptr;
}