$(document).ready(function () {
var url = window.location.pathname.split("/"),
htmlFile = url[url.length-1];
if(htmlFile.includes(".html")){
$('.nav-link').removeClass('active');
$('.nav-link[href="last_part"]').addClass('active');
}
else {
$('.nav-link').removeClass('active')
$('.nav-link').first().addClass('active');
}
});
我正在运行此代码。我已进入" Jagrit"作为输入。我希望上面的节目输出是' j'。但相反,我得到的只是一个空白区域。任何人都可以告诉我为什么会这样,代码中的错误是什么?
答案 0 :(得分:0)
scanf
期望memrory的地址写入以读取数据:
#include <stdio.h>
int main(void) {
char str[100];
scanf("%s", str);
printf("%c",str[0]);
return 0;
}
请查看scanf
上this doc的示例部分。
您对scanf("%s", "jargrit dolir")
的意图是什么?
答案 1 :(得分:0)
这个
scanf("%s","jagrit dolir");/*it doesn't put data into str, and doing that causes UB*/
因此访问str[0]
可能会导致未定义的行为,因为str
未初始化&amp;它没有任何数据。
而是使用如下。
scanf("%s",str);/* now give input like jagrit dolir */
然后打印str[0]
。
编辑: - ,因为您修改了代码。您是否阅读了scanf()
的手册页?
scanf("%s",str[0]);/* why you are not reading compiler warning here ?*/
此处%s
需要char*
的参数,但您提供了char
类型。
答案 2 :(得分:0)
如果您只想将输入作为字符串可以使用fgets() 并只使用str [0]打印字符串的第一个字符 注意 printf()仅用于打印值; 这是代码的简单版本:
#include <stdio.h>
# include<stdlib.h>
int main() {
char str[100];
fgets(str,100,stdin);
printf("%c",str[0]);
return 0;
}
答案 3 :(得分:0)
在使用str [0]时,访问它的值,因此scanf
应该像scanf("%s",&str[0]);
或scanf("%s",str);
这样
您还应该期望输出为'a'
答案 4 :(得分:-2)
试试这段代码
#include <stdio.h>
int main()
{
char str[100];
printf("%s","jagrit dolir");
printf("%c",str[0]);
return 0;
}