我正在尝试使用iOS项目中的现有代码段来按字母顺序排列数组中的单词列表(例如,将番茄制成amoott,或堆叠成ackst)。如果我自己运行它,代码似乎可以工作,但我正在尝试将其集成到我现有的应用程序中。
我希望它按字母顺序排列的每个单词都作为 NSString 存储在数组中。问题似乎是代码将单词作为字符数组,我无法将我的 NSString 转换为该格式。
如果我使用string = [currentWord UTFString]
,我得到一个错误Array type char[128] is not assignable
,如果我尝试在循环内创建char数组(const char *string = [curentWord UTF8String]
),我会收到与Initializing char with type const char discards qualifiers
有关的警告。不太确定我该如何解决它 - 有什么提示吗?方法如下,稍后我将负责存储按字母顺序排列的版本。
- (void) alphabetizeWord {
char string[128], temp;
int n, i, j;
for (NSString* currentWord in wordsList) {
n = [currentWord length];
for (i = 0; i < n-1; i++) {
for (j = i+1; j < n; j++) {
if (string[i] > string[j]) {
temp = string[i];
string[i] = string[j];
string[j] = temp;
}
}
}
NSLog(@"The word %@ in alphabetical order is %s", currentWord, string);
}
}
这应该有效:
- (void)alphabetizeWord {
char str[128];
for (NSString *currentWord in wordList)
{
int wordLength = [currentWord length];
for (int i = 0; i < wordLength; i++)
{
str[i] = [currentWord characterAtIndex:i];
}
// Adding the termination char
str[wordLength] = 0;
// Add your word
}
}
编辑:对不起,一开始没有完全理解。去看看这个。