Objective c 将NSString转换为For循环内部的字符数组
我正在尝试使用iOS项目中的一段现有代码来按字母顺序排列数组中的单词列表(例如,将番茄放入amoott,或将堆栈放入ackst)。如果我自己运行它,代码似乎可以运行,但我正在尝试将其集成到我现有的应用程序中 我希望它按字母顺序排列的每个单词都存储为数组中的NSString。问题似乎是代码将单词作为字符数组,而我无法将NSString转换成这种格式 如果我使用Objective c 将NSString转换为For循环内部的字符数组,objective-c,for-loop,nsstring,char,Objective C,For Loop,Nsstring,Char,我正在尝试使用iOS项目中的一段现有代码来按字母顺序排列数组中的单词列表(例如,将番茄放入amoott,或将堆栈放入ackst)。如果我自己运行它,代码似乎可以运行,但我正在尝试将其集成到我现有的应用程序中 我希望它按字母顺序排列的每个单词都存储为数组中的NSString。问题似乎是代码将单词作为字符数组,而我无法将NSString转换成这种格式 如果我使用string=[currentWord UTFString],我会得到一个错误数组类型char[128]是不可分配的,如果我尝试在循环中创建
string=[currentWord UTFString]
,我会得到一个错误数组类型char[128]是不可分配的,如果我尝试在循环中创建char数组(const char*string=[curentWord UTF8String]
),我会收到有关使用类型const char discards限定符初始化char的警告。我不太清楚我该如何应对——有什么建议吗?方法如下,稍后我将负责存储按字母顺序排列的版本
- (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);
}
}
—(空)字母词{
字符字符串[128],临时;
int n,i,j;
for(NSString*Word列表中的currentWord){
n=[当前字长];
对于(i=0;istring[j]){
temp=字符串[i];
字符串[i]=字符串[j];
字符串[j]=温度;
}
}
}
NSLog(@“单词%@按字母顺序为%s”,currentWord,字符串);
}
}
这应该可以:
- (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
}
}
—(空)字母词{
char-str[128];
for(NSString*单词列表中的currentWord)
{
int-wordLength=[currentwordlength];
for(int i=0;i
编辑:对不起,一开始我没有完全理解。我来看看。那么你现在有一个NSString数组,你想要一个char*数组?我想是的。很难看出哪个部分不起作用,但数组中的NSString目前没有进入string
。不,你赢了,似乎是通过将我现有的代码与你在这里给出的代码结合起来才起作用的!