我基本上是写代码来读取存储字符串的其余部分,如果它以l开头。
char input[80];
char fileName[80];
fgets(input, 80, stdin); //Need to use because only want to read maximum 80 characters
if(input[0] == 'l') {
printf("String length: %dn", strlen(input));
printf("String input: %s", input);
strncpy(fileName, &input[1], (strlen(input)) -2);
fileName[strlen(input)-1] = ' ';
printf("Filename to save: %s n", fileName);
}
当我输入ljudyjudyjudyjudy打印时得到的文件名是judyjudyjudyjudyjudyh
它有时工作与不同的输入,但有时额外的字符支持?
我想你差了一个:
fgets(input, 80, stdin); //Need to use because only want to read maximum 80 characters
if(input[0] == 'l') {
printf("String length: %dn", strlen(input));
printf("String input: %s", input);
strncpy(fileName, &input[1], (strlen(input)) -2);
fileName[strlen(input)-2] = ' '; // should be -2 instead
printf("Filename to save: %s n", fileName);
}
在以"ljudyjudyjudyjudy"
为输入的示例中,您希望将fileName[16]
设置为' '
而不是fileName[17]
。