Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 该代码如何打印用户输入的最后一个单词?_C_String_Info - Fatal编程技术网

C 该代码如何打印用户输入的最后一个单词?

C 该代码如何打印用户输入的最后一个单词?,c,string,info,C,String,Info,这段代码接受用户输入并返回用户输入的最后一个单词。 我不太明白这两行代码是如何工作的 有人能解释为什么或如何打印吗当我处于位置0时,打印用户输入的句子的最后一个单词 该程序的目的是打印用户输入的最后一个字,但我不理解这些代码行,如果我在这两行上更改了某些内容,代码将停止工作,并且不会返回用户输入的最后一个字 #include <stdio.h> int main(){ int i = 0; char *last_word; char str[800]; printf("en

这段代码接受用户输入并返回用户输入的最后一个单词。

我不太明白这两行代码是如何工作的

有人能解释为什么或如何打印吗当我处于位置0时,打印用户输入的句子的最后一个单词

该程序的目的是打印用户输入的最后一个字,但我不理解这些代码行,如果我在这两行上更改了某些内容,代码将停止工作,并且不会返回用户输入的最后一个字

#include <stdio.h>

int main(){    
int i = 0;
char *last_word;
char str[800];
printf("enter:");
fgets(str,100,stdin);

while (str[i] != '\0')    {    
    if (str[i] == ' ' && str[i + 1] > 32) 
        last_word = &str[i + 1]; 
    i++;                         
}

 /*------------------------these next lines of code-----------------------*/
 /*----->    i = 0; 
 /*----->    printf( &last_word[i]);


       return 0;
    }
#包括
int main(){
int i=0;
char*最后一个单词;
char-str[800];
printf(“输入:”);
fgets(str,100,stdin);
而(str[i]!='\0'){
如果(str[i]=''&&str[i+1]>32)
最后一个单词=&str[i+1];
i++;
}
/*------------------------下面这些代码行-----------------------*/
/*----->i=0;
/*----->printf(&last_word[i]);
返回0;
}

神圣的未定义行为蝙蝠侠

while循环将下一个字符的地址通过空格字符填充到
最后一个单词中
;因此,如果有任何空格字符,它会指向最后一个字符的后面

i=0
因此
和last\u word[i]
last\u word
相同。因此,它使用最后一个单词作为
printf
格式字符串

但这和最后一句话不一样。尝试此输入:“%n%n%n%n%n%n%n%n%n”。再见


printf
的第一个参数几乎总是一个常量。您需要
printf(“%s”,最后一个单词)printf
和朋友的唯一原因是,您的标准库太旧,无法支持
%*d
动态宽度。

确保始终使用字符串文字作为
printf
的第一个参数。哦,这是正确的,感谢您捕捉到了这一点。如果
str[]
缺少
[]
@chux这是什么意思?@JL2210 Oops,typp:code如果
str[]
缺少
'
as,代码将失败。
最后一个单词
稍后使用,但从未设置。