在点亮手电筒之前,我试图自学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