gpt4 book ai didi

ios - substringWithRange 适用于硬编码字符串,但不适用于用户输入的字符串

转载 作者:搜寻专家 更新时间:2023-10-30 20:16:35 26 4
gpt4 key购买 nike

当我对有问题的字符串进行硬编码并尝试使用 substringWithRange 时,它​​工作得很好。但是当我将用户输入作为 char 并将其转换为 NSString 时,它会抛出 NSRange 异常。是因为我正在转换一个字符吗?

这行不通:

    char word[30];
NSString *otherWord = [NSString stringWithFormat:@"%s", word];
scanf("%s", word);
NSString *firstCharacter = [otherWord substringWithRange:NSMakeRange(0, 3)];

但是,这个确实:

    char word[30];
NSString *otherWord = @"SomeString";
scanf("%s", word);
NSString *firstCharacter = [otherWord substringWithRange:NSMakeRange(0, 3)];

我还进行了检查以确保“otherWord”具有正确的值,确实如此。

有什么建议吗?

最佳答案

您需要将 char word[30] 设置为等于某个值,否则在转换为在其上运行 subStringWithRange 时它将没有足够的字符。因此出现了 NSRange 异常。

char word[30] = {'a', 'b', 'c', 'd'};
scanf("%s", word);
NSString *otherWord = [NSString stringWithCString:word encoding:NSASCIIStringEncoding];
NSString *firstCharacter = [otherWord substringWithRange:NSMakeRange(0, 3)];
NSLog(@"%@",firstCharacter);

关于ios - substringWithRange 适用于硬编码字符串,但不适用于用户输入的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27996213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com