Boolean in C Programming
因此,不幸的是,我在尝试创建的程序中遇到了另一个问题。首先,我对C编程完全陌生,我正在尝试创建一个单词搜索。
我有一段C++代码,我想把它变成C:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | #include <iostream> using namespace std; int main() { char puzzle[5][5] = { 'A', 'J', 'I', 'P', 'N', 'Z', 'F', 'Q', 'S', 'N', 'O', 'W', 'N', 'C', 'E', 'G', 'L', 'S', 'X', 'W', 'N', 'G', 'F', 'H', 'V', }; char word[5] ="SNOW"; // The word we're searching for int i; int len; // The length of the word bool found; // Flag set to true if the word was found int startCol, startRow; int endCol, endRow; int row, col; found = false; i = 0; len = 4; // Loop through each character in the puzzle for(row = 0; row < 5; row ++) { for(col = 0; col < 5; col ++) { // Does the character match the ith character of the word // we're looking for? if(puzzle[row][col] == word[i]) { if(i == 0) { // Is it the first character of the word? startCol = col; startRow = row; } else if(i == len - 1) { // Is it the last character of the // word? endCol = col; endRow = row; found = true; } i ++; } else i = 0; } if(found) { // We found the word break; } } if(found) { cout <<"The word" << word <<" starts at (" << startCol <<"," << startRow <<") and ends at (" << endCol <<"," << endRow <<")" << endl; } return 0; } |
但是,我遇到了一个问题,因为我刚注意到C编程不支持布尔值。
我使用它是为了让用户输入他正在搜索的单词(例如:boy),用户还输入长度(3),然后用户将输入单词的第一个字母和最后一个字母的坐标。当用户输入以下内容时,我计划从上面的代码中获取坐标,然后将它们与用户输入的内容进行比较。如果他们不匹配的用户猜测错误,如果他们匹配的用户猜测正确。
我也试过
有没有其他方法代替
事先谢谢。
你说
I've also tried the stdbool.h library , however it didn't work because the library wasn't found.
那么,我倾向于建议您找到并使用一个符合C99或C2011的编译器。至少,前者不应该太难掌握。这两种方法都可以确保提供报头,使用它可能是您前进的最方便的方式。
因为您的代码仍然包含一些C++ - ISM(例如EDCOX1,18),EDCOX1,19,语句,和C++风格的
只需使用
1 2 | enum { false, true }; typedef int bool; |
如果你想储存很多布尔酒,考虑
1 | typedef char bool; |
相反。请注意,这两种类型都不能成为"真正的"布尔类型,因为它可以假定除0和1之外的其他值。使用C约定,0表示虚假,而其他值表示真实。
c99具有
I don't know exactly how to interpret it in the following code.
我想你不能解释:
规则是,任何非
所以:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
编辑:
如果你想写这样的代码
1 | int found = true; |
实际上,您的编译器并不知道
但是,如果您没有布尔数据类型,并且不能包含
使用
但我在程序顶部的代码中使用了这个,两个常量使用单词
1 2 | #define FALSE 0 #define TRUE 1 |