A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 变味的面包 于 2015-9-26 14:57 编辑

要求输入:
http://www.baidu.com/?d=10&bb=100&cf=22.22&test=&d=20&gg=789
输出结果:
d:20 bb:100 cf:22.22 test:null gg:789

搞了一天,还是得不到想要的结果,能将了;里面信息提取出来并保存在一个NSMutableDict中 ,但是得不到输出的格式   ,具体代码如下
  1. #import <Foundation/Foundation.h>

  2. int main(int argc, const char * argv[]) {
  3.    
  4.     char a[100];
  5.     char *t = a;
  6.    

  7.     scanf("%s",t);
  8.     NSString *str = [NSString stringWithUTF8String:t];
  9.     // 先从?往后截取
  10.     NSRange range = [str rangeOfString:@"?"];
  11.     NSString *str1 = [str substringFromIndex:(range.location + 1)];
  12. // NSLog(@"%@",str1);   // d=10&bb=100&cf=22.22&test=&d=20&gg=789
  13.    
  14.    
  15.     str1 = [str1 stringByReplacingOccurrencesOfString:@"=&" withString:@"=null&"];

  16.     // dictM了保存数据
  17.     NSMutableDictionary *dictM = [[NSMutableDictionary alloc] initWithCapacity:140];

  18.    
  19.     NSRange ValuRange;
  20.     NSString *valu;
  21.    
  22.     while (ValuRange.location != NSNotFound) {
  23.         
  24.         // 截取key
  25.         NSRange keyRange = [str1 rangeOfString:@"="];
  26.         NSString *key = [str1 substringToIndex:(keyRange.location)];
  27. // NSLog(@"key = %@",key);  // key = d
  28.         
  29.         // 截取 key= 以后的字符串
  30.         NSRange range = [str1 rangeOfString:@"="];
  31.         str1 = [str1 substringFromIndex:(range.location + 1)];
  32. // NSLog(@"%@",str1);  // 10&bb=100&cf=22.22&test=null&d=20&gg=789
  33.         
  34.         // 截取 valu
  35.          ValuRange = [str1 rangeOfString:@"&"];
  36.         if (ValuRange.location == NSNotFound) {
  37.             valu = str1;
  38.             [dictM setObject:valu forKey:key];
  39.             break;
  40.         }
  41.         valu = [str1 substringToIndex:(ValuRange.location)];
  42. // NSLog(@"valu = %@",valu);  // valu = 10
  43.         
  44.         [dictM setObject:valu forKey:key];
  45.         
  46.         
  47.         range = [str1 rangeOfString:@"&"];
  48.         str1 = [str1 substringFromIndex:(range.location + 1)];
  49. // NSLog(@"%@",str1);  // bb=100&cf=22.22&test=null&d=20&gg=789
  50.     }

  51.     // 打印并保存
  52.     NSLog(@"%@",dictM);
  53.    
  54.    BOOL isSussed = [dictM writeToFile:@"/Users/apple/Desktop/Abner/1.plist" atomically:YES];
  55.    NSLog(@"%hhd",isSussed);

  56.    
  57.         return 0;
  58. }
复制代码

打印结果:
  1. 2015-09-26 14:38:23.893 test[5236:68743] {
  2.     bb = 100;
  3.     cf = "22.22";
  4.     d = 20;
  5.     gg = 789;
  6.     test = null;
  7. }
复制代码
顺出顺序也不对  ,请问大神这怎么搞?

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马