我正在使用strncpy(justLine, buf, charsToWrite)
将输入传递到char input[255]
。现在我想从中得到第一个字。
我管理了这样的事情:
int spaceIndex = strchr(input, ' ');
char firstWord[spaceIndex];
strncpy(firstWord, input, spaceIndex-1);
firstWord[spaceIndex] = '\0';
不幸的是,这不能正常工作。你有什么想法吗?
我也尝试过使用strtok
,但它正在弄乱input
。
答案 0 :(得分:-1)
您需要分配大小为spaceIndex+1.
的字符串
您的代码几乎是正确的,当您分配'\0'
和strncpy
时,您只是不记得char
终结符是字符串的一部分。
您需要两个修复:
再添加一个firstWord
到char firstWord[spaceIndex + 1];
:
strncpy
请注意调用strncpy(firstWord, input, spaceIndex+1);
时的额外字节:
strncpy(firstWord, input, sizeof(firstWord));
我建议实际使用缓冲区大小作为参数:
{
"name": "HalfScreen",
"version": "1.0",
"manifest_version": 2,
"description": "Larger window screen for youtube",
"browser_action": {
"default_icon": "icon.png"
},
"permissions": [
"tabs"
],
"content_scripts": [
{
"matches": ["https://www.youtube.com/watch*", "http://www.youtube.com/watch*"],
"js": ["inject.js"]
}
],
"background": {
"scripts": ["background.js"]
}
阅读strncpy
's documentation,虽然你正确使用它,但这个功能真的很棘手。