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;
}

入力時:「Test1test2test3」

私が得る:Test1

コードはスペースを考慮していません。ホールストリングをスキャンするにはどうすればよいですか?

4

1 に答える 1

1

これが機能しない理由は、scanfに検索する文字列のサイズがないため、最初の空白で停止しているためです。使用できるもう1つのメソッドは、入力用のfgets()です。
ここにあるこのリンクは、より多くの情報を提供します(私はそれがcと言っていることを知っていますが、あなたはここでc関数を使用しています) 空白を許可するc

于 2012-10-23T12:20:40.517 に答える