我无法在标题中很好地解释我的问题。下面是两套代码:
int main() {
char str[81] = "Hello World";
scanf("%s", str);
str[3] = 'X';
printf("%s", str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输入 789 时,输出为“789Xo World”,这表明 scanf 函数正在用输入替换 char 数组的前 3 个索引,而 str[3] 行将第 4 个索引替换为 'X'。这对我来说很有意义。
int main() {
char str[81] = "Hello World";
scanf("%s", str);
printf("%s", str);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输入 789 时,输出 789。 Scanf 不再替换 str 的前 3 个索引,而是替换整个内容。让我感到困惑的是,手动更改第 4 个索引 (str[3]) 会以某种方式使程序更改 str 的前面而不是完全替换它?
我对 C 很陌生,在我的教科书中找不到任何解释。提前感谢您的帮助。
我在使用 React 制作网站时发现了一些奇怪的问题。
我已将我的文件系统组织到一个包含 Components-js 和 Components-css 的文件夹中,并与相应的 Text.js 和 Text.css 文件进行匹配。
下面是我的 Login.js/css 和 Signup.js/css 文件。
登录.js
import '../components-css/Login.css';
import Logo from './Logo.js';
import { useState } from 'react';
import { useNavigate, Link } from 'react-router-dom';
import TextInput from './TextInput.js';
function Login(props) {
const [error, setError] = useState(false);
const navigate = useNavigate();
const trigger_error = () => {
console.log(error)
if (error === false) {
setError(true);
}
else {
setError(false);
}
}
const check_login_info = () => {
// TODO: …Run Code Online (Sandbox Code Playgroud)