我的初始代码没有产生所需的结果:
import java.util.Scanner;
class Strings {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your word: ");
String word1 = sc.next();
System.out.println(word1.length());
sc.close();
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
tk@localhost:~$ java Strings
Enter your word:
avada kedavra
5
Run Code Online (Sandbox Code Playgroud)
这不是我的字符串的长度.但当我尝试这个(没有用户输入):
class Strings {
public static void main(String[] args) {
String str = new String("avada kedavra");
System.out.println(str.length());
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
tk@localhost:~$ java Strings
13
Run Code Online (Sandbox Code Playgroud)
有用!那么,当我从用户那里获取输入时,为什么它不起作用?我错过了什么?
这里定义的是ANSI C中的枚举.
enum Security_Levels
{
black_ops,
top_secret,
secret,
non_secret
};
Run Code Online (Sandbox Code Playgroud)
现在声明类型为Security_Levels的s [4],我在main()代码中写了这个
Security_Levels s[4];
Run Code Online (Sandbox Code Playgroud)
我收到这个错误:
file.c: In function ‘main’:
file.c:13:3: error: unknown type name ‘Security_Levels’
Security_Levels s[4];
Run Code Online (Sandbox Code Playgroud)
但是当我宣布这样的时候
enum Security_Levels s[4];
Run Code Online (Sandbox Code Playgroud)
有效!
Security_Levels s[4];
Run Code Online (Sandbox Code Playgroud)
这个^在C++中工作,但在C中抛出上述错误
在C和C++中使用struct时我也有类似的问题.
struct structure_name variable_name; //this is how it works in C
structure_name variable_name; // in case of C++
Run Code Online (Sandbox Code Playgroud)
那么,为什么在声明用户定义类型的变量时存在差异呢?