0

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

#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”

我得到:测试1

该代码不考虑空格。如何扫描大厅字符串?

4

1 回答 1

1

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

于 2012-10-23T12:20:40.517 回答