字符串处理难点???

1.字符串这一部分,一定要对vector,map熟悉熟悉熟悉熟悉!!!
2.如何把“123456”转化成数字值123456?
3.如何把数字值123456转化成字符串“123456”?

头文件:sstream
stringstream ss;
ss<<num;
string s;
ss>>s;

3.如下代码段中为什么输出来没有任何内容?

string s1="abcd",s2;
for(int i=0;i<s1.size();i++){
    s2[i]=s1[i];
}
cout<<s2<<"\n";
//这个问题真是玄之又玄,时而可以输出内容,时而又不行,如果出现输不出内容,那尝试把赋值语句改成s2.push_back(s1[i]);

4.玄学:

string s;
num=s.size()-a-b-c;//报错,编译不通过
int len=s.size();
num=len-a-b-c;//编译通过 orz

5.vector map string等,调用clear函数并没有真正释放内存,根据容量函数查看得知,所占容量并没有减少。因此,在循环中如果误以为它会释放内存而去反复resize()开辟内存,会导致内存泄漏。

6,这个广度优先搜索题,卡了我两小时,,,,算法思路简单!但是这个细节错误我大二的时候做同样类型的题目就犯过,而且当时也是卡了我两小时以上。惭愧…很弱智的一个错误。如下图,是逆向求出最短路径,但是宁这个“x=p[xx][yy].first;y=p[xx][yy].second;”可直接给我秀到了,这样低级错误再也!!不要!!!犯了!!!!!!!
在这里插入图片描述
7.分割字符串strtok_r()函数,巧妙使用可以带来很多便利。

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
  
int main()  {  
    char str[]="ab,cd,ef";  
    char *ptr;  
    char *p;  
    printf("before strtok:  str=%s\n",str);  
    printf("begin:\n");  
    ptr = strtok_r(str, ",", &p);  
    while(ptr != NULL){  
        printf("str=%s\n",str);  
        printf("ptr=%s\n",ptr);  
        ptr = strtok_r(NULL, ",", &p);  
    }  
    return 0;  
}

8.scanf如何读入一整行,也就是说不会遇到空格就就结束。

char s[20];
scanf("%[^\n]",s);//表示只要没到‘\n’这个字符,那么就会一直读入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值