为什么我无法用空格扫描整个字符串?

时间:2012-10-23 12:08:49

标签: objective-c string

我尝试扫描一个字符串并将其分成单独的字符串。 我的代码是:

#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

代码不考虑空格。我如何扫描大厅弦?

1 个答案:

答案 0 :(得分:1)

这不起作用的原因是scanf没有要查找的字符串大小,因此它在第一个空格处停止。您可以使用的另一种方法是输入fgets() 这里的链接提供了更多信息(我知道它说c但你在这里使用c函数) Allowing white spaces c