我尝试扫描一个字符串并将其分成单独的字符串。 我的代码是:
#import <Foundation/Foundation.h>
NSArray *wordsArray;
int amount;
char input[80];
int main (int argc, const char * argv[])
{
@autoreleasepool {
NSString *stra=[[NSString alloc] initWithString:@""];
// stra=@"this is my sentence";
NSLog(@"Please Enter a sentence!");
scanf("%s",&input);
stra=[NSString stringWithCString:input encoding:NSASCIIStringEncoding];
// NSLog(@"words: %@",str);
wordsArray = [stra componentsSeparatedByString:@" "];
amount= [wordsArray count];
NSLog(@"Number of Shows : %d", amount);
for (int i=0; i<amount; i++)
{
NSString *subString = [wordsArray objectAtIndex:i];
NSLog(@"\n %@",[subString uppercaseString]);
}
}
return 0;
}
输入:“Test1 test2 test3”
我得到:Test1
代码不考虑空格。我如何扫描大厅弦?
答案 0 :(得分:1)
这不起作用的原因是scanf没有要查找的字符串大小,因此它在第一个空格处停止。您可以使用的另一种方法是输入fgets() 这里的链接提供了更多信息(我知道它说c但你在这里使用c函数) Allowing white spaces c