我基本上是编写代码来读取存储其余字符串的东西,如果它以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: %d\n", strlen(input));
printf("String input: %s", input);
strncpy(fileName, &input[1], (strlen(input)) -2);
fileName[strlen(input)-1] = '\0';
printf("Filename to save: %s \n", fileName);
}
当我输入ljudyjudyjudyjudy时 我在printf时获得的文件名是judyjudyjudyjudyH
它有时会使用不同的输入,但有时会支持额外的字符?
答案 0 :(得分:4)
我认为你不在乎:
fgets(input, 80, stdin); //Need to use because only want to read maximum 80 characters
if(input[0] == 'l') {
printf("String length: %d\n", strlen(input));
printf("String input: %s", input);
strncpy(fileName, &input[1], (strlen(input)) -2);
fileName[strlen(input)-2] = '\0'; // should be -2 instead
printf("Filename to save: %s \n", fileName);
}
在以"ljudyjudyjudyjudy"
为输入的示例中,您希望将fileName[16]
设置为'\0'
而不是fileName[17]
。