在點亮手電筒之前,我試圖自學C++。我覺得我已經掌握了它,但如果你明白我的意思,我必須深入探索。我試圖調試一個簡單的程序,我試圖讓自己教。這個程序的目標是按字母順序排列每一列中打印的字符串數組。在將數組傳遞給我的length()函數時,我可能應該在這裏使用指針,但是我還沒有得到那麼多。有太多的錯誤,我不確定錯誤的實際位置。請告訴我這是一個缺少的分號。我很確定if(itemsToSort [j] < firstInAZOrder)行將不起作用,但我試圖學習語言,我必須從某處開始。按字母順序排列字符串數組的問題
main.cpp中:
#include <iostream>
#include "stringarray.h"
void output (int sortedItems) {
for (int i = 0; ; i++) {
std::cout << sortedItems[i] << std::endl;
}
}
int main (int argc, char * const argv[]) {
std::string itemsToSort[] = {
'bob', 'john', 'tyler', 'anthony', 'luke', 'eric'
};
std::string sortedItems[length(itemsToSort)];
string firstInAZOrder;
for (int i = 0; i < length(itemsToSort); i++) {
firstInAZOrder = itemsToSort[i];
for (int j = i + 1; j < length(itemsToSort); j++) {
if (itemsToSort[j] < firstInAZOrder) {
firstInAZOrder = itemsToSort[j];
}
}
sortedItems[i] = firstInAZOrder;
}
output(sortedItems);
return 0;
}
stringarray.cpp:
int length (std::string array) {
return sizeof(array)/sizeof(array[0]);
}
stringarray.h:
int length (std::string array);
這是錯誤和警告的Xcode的名單給我:
- /Users/Tyler/Desktop/sort/main.cpp:12:3:警告:多字符字符常量 -
- /Users/Tyler/Desktop/sort/main.cpp:12:18:warning:character常量太長其類型
- /Users/Tyler/Desktop/sort/main.cpp:12:27:警告:字符常量太長,其類型
- /Users/Tyler/Desktop/sort/main.cpp :在函數'void output(int)'中:
- /Users/Tyler/Desktop/sort/main.cpp:6:錯誤:數組下標爲無效類型'int [int]'
- /Users/Tyler/Desktop/sort/main.cpp:在函數'int main(int,char * const *)'中:
- /Users/Tyler/Desktop/sort/main.cpp:13:錯誤:無效從'int'轉換爲'const char *'
- /Users/Tyler/Desktop/sort/main.cpp:13:error :初始化參數1'std :: basic_string < _CharT,_Traits,_Alloc> :: basic_string(const _CharT *,const _Alloc &)[with _CharT = char,_Traits = std :: char_traits,_Alloc = std :: allocator]'
- /Users/Tyler/Desktop/sort/main.cpp:13:錯誤:從'int'無效轉換爲'const char *'
- /Users/Tyler/Desktop/sort/main.cpp:13:錯誤:初始化參數1'std :: basic_string < _CharT,_Traits,_Alloc> :: basic_string(const _CharT *,const _Alloc &)[with _CharT = char,_Traits = std :: char_traits,_Alloc = std :: allocator]'
- /Users/Tyler/Desktop/sort/main.cpp:13:error:invalid conversion from'int'to 'const char *'
- /Users/Tyler/Desktop/sort/main.cpp:13:error:初始化參數1的'std :: basic_string < _CharT,_Traits,_Alloc> :: basic_string(const _CharT *,const _Alloc &)[with _CharT = char,_Traits = std :: char_traits,_Alloc = std :: allocator]'
- /Users/Tyler/Desktop/sort/main.cpp:13:error:'int' 'const char *'
- /Users/Tyler/Desktop/sort/main。cpp:13:error:初始化參數1'std :: basic_string < _CharT,_Traits,_Alloc> :: basic_string(const _CharT *,const _Alloc &)[with _CharT = char,_Traits = std :: char_traits,_Alloc = std :: allocator]'
- /Users/Tyler/Desktop/sort/main.cpp:13:error:從'int'無效轉換爲'const char *'
- /Users/Tyler/Desktop/sort/main .cpp:13:error:初始化參數1'std :: basic_string < _CharT,_Traits,_Alloc> :: basic_string(const _CharT *,const _Alloc &)[with _CharT = char,_Traits = std :: char_traits,_Alloc = std :: allocator]'
- /Users/Tyler/Desktop/sort/main.cpp:13:error:從'int'無效轉換爲'const char *'
- /Users/Tyler/Desktop/sort/main.cpp:13:error:初始化參數1'std :: basic_string < _CharT,_Traits,_Alloc> :: basic_string(const _CharT *,const _Alloc &)[with _CharT = char,_Traits = std :: char_traits,_Alloc = std :: allocator]'
- /Users/Tyler/Desktop/sort/main.cpp:14:error:從'std :: string *'轉換爲非-scalar type'std :: string'requested
- /Users/Tyler/Desktop/sort/main.cpp:15:error:'string'was not declared in this scope
- /Users/Tyler/Desktop/sort /main.cpp:15:錯誤:預計爲';' before'firstInAZOrder'
- /Users/Tyler/Desktop/sort/main.cpp:17:error:從'std :: string *'轉換爲非標量類型'std :: string'請求
- /Users /Tyler/Desktop/sort/main.cpp:18:錯誤:'firstInAZOrder'未在此範圍內聲明
- /Users/Tyler/Desktop/sort/main.cpp:20:錯誤:從'std ::字符串*'到非標量類型'std :: string'請求
- /Users/Tyler/Desktop/sort/main.cpp:26:錯誤:'sortedItems'未在此範圍內聲明
- /Users/Tyler/Desktop/sort/main.cpp:29:error:'sortedItems'未在此範圍內聲明
- /Users/Tyler/Desktop/sort/stringarray.cpp:10:error:'string'不是'std'的成員
- /Users/Tyler/Desktop/sort/stringarray.cpp:10:error:預期','或';'之前,「{」令牌
謝謝。我沒有意識到引號是重要的。 – 2011-03-10 20:50:00