20150503字符串实战
2016-06-23 11:46
246 查看
五.字符串切割
1.strtok用法
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main1() {
char str[100] = "123,re,456,ertr,treter";
char *p = strtok(str, ",");//传递字符串切割
//,替换为\0
printf("%s", p);
for (char *p = strtok(str, ","); p != NULL; p = strtok(p + strlen(p)+1,",")) {
printf("%s\n", p);
}
system("pause");
}
2.字符串切割
1.strtok用法
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main1() {
char str[100] = "123,re,456,ertr,treter";
char *p = strtok(str, ",");//传递字符串切割
//,替换为\0
printf("%s", p);
for (char *p = strtok(str, ","); p != NULL; p = strtok(p + strlen(p)+1,",")) {
printf("%s\n", p);
}
system("pause");
}
2.字符串切割
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <string.h> //strtok, int getcharnum(char *str, char ch) { int i = 0; //找到第一个 //从下一个位置再找 for (int *p = strchr(str, ch); p != NULL; p = strchr(p+1, ch)) { i++; } return i; } void delspace(char *str,char ch) { int i = 0; int j = 0; while (str[i]!='\0') { str[i] = str[j]; if (str[i]!= ch) { i++; } j++; } } void main1() { //一条代码,多条显示 char str[2048] = "我们还是当朋友好了 ( 其实你还有可以利用的价值)\ 我想我真的不适合你 ( 我根本就不喜欢你!)\ 其实你人真的很好 ( 可是我不想和你在一起)\ 你人真的很好 ( 我是真的不想和你在一起)\ 你人真的真的很好....真的 ( 猪头, 离我远一点!)\ 我暂时不想交男朋友 ( 闪边啦!你还不到我心中帅哥标准的一半)\ 我不想伤害我们之间的友谊 ( 我们之间也只会有友谊)\ 我心中牵挂着一个人 ( 那个人是我专门为你这种人虚构的)\ 我从来没想过这个问题 ( 这是根本不可能的.还用想吗 ? )\ 我不适合当个情人 ( 废话, 没人会适合当你的情人的)\ 你给我一段时间考虑 ( 不给我时间, 我怎么溜啊)\ 你的条件真的很好 ( 可是还没好到我想要的地步)\ 可是这样的感觉好怪 ( 你这丑八怪, 怪到这样还想吃天鹅肉 ? )\ 你的温柔我会铭记在心的 ( 拜托, 情圣!光温柔是没用的, 还要有钱!)\ 其实我一直没勇气接受你( 看到你差点吓死, 哪还有勇气 ? )\ 你真的很可爱 ( 你真的很幼稚)\ 你真的是超级可爱啦 ( 猪头, 不要象小孩那样缠着我!)\ 遇到你, 总会让我重温童年的快乐 ( 就象阿姨遇到小弟弟那样)\ 我们应该给彼此一点缓冲时间 ( 给你时间快滚, 再不走我要翻脸啦!)\ 别人都说你条件不错啊 ( 可我从来没这样认为!)\ 如果我们早点认识就好了 ( 可以让你早点觉悟!)\ 别急嘛, 我们可以做朋友 ( 趁这个时候我要找到我的白马王子啊~)\ "; int num = getcharnum(str,')'); printf("一共%d行\n", num); char ** strall = malloc(sizeof(char *)*num);//分配指针数组 char ** strsay = malloc(sizeof(char*)*num);//二级指针 char ** strthink = malloc(sizeof(char*)*num);//二级指针 int i = 0; for (char *p = strtok(str, ")"); p != NULL; p = strtok(p + strlen(p) + 1, ")")) { //delspace(p, '\t');//删除制表, if (i<num) { strall[i] = malloc(sizeof(char)*(strlen(p) + 1));//分配内存 strcpy(strall[i], p);//拷贝 delspace(strall[i], '\t');//删除制表 printf("\n%s", strall[i]);//拷贝的字符串 } i++; } for (int i = 0; i < num;i++) { char *ps = strall[i]; //拷贝的字符串 ps = strtok(ps, "("); strsay[i] = malloc(sizeof(char)*(strlen(ps) + 1));//长度 strcpy(strsay[i], ps); ps = ps + strlen(ps) + 1;//下一段 strthink[i] = malloc(sizeof(char)*(strlen(ps) + 1)); strcpy(strthink[i], ps); printf("\n说的 %s,\n想得 %s", strsay[i], strthink[i]); //ps = strtok(ps + strlen(ps) + 1, "("); } char mystr[128] = { 0 }; scanf("%s", mystr); int flag = 0; for (int i = 0; i < num;i++) { char *p = strstr(strsay[i], mystr); if (p!=NULL) { flag = 1; printf("\n说的 %s,\n想得 %s", strsay[i], strthink[i]); break; } } if (!flag) { printf("可以问芳姐"); } system("pause"); }
相关文章推荐
- elasticsearch按照配置时遇到的一些坑 [Failed to load settings from [elasticsearch.yml]]
- list页面示例
- mysql 拼装or条件
- iOS开发之第三方分享微信分享、朋友圈分享,史上最新最全第三方分享微信方式实现、朋友圈方式实现
- 如何使用远程桌面连接远程计算机?
- php文件下载不完整的解决办法
- 飛飛(七十九)(补)阅读程序
- WIN10增加简体中文(美式键盘)
- IceWarp V11.4 新版本之 TeamChat 企业协作通讯工具(一)
- EditText限制输入的小数点只能2个
- 【转载】我所理解的BeanUtils.copyProperties() 用法
- 车机系统架构图
- IOS-10行代码搞定九宫格
- docker深入2-使用自定义的网络来配置zookeeper集群
- ArcGIS Online试用 (2)
- nginx源码分析——事件模块
- 转载自爱维论坛关于网卡驱动那些事,经验之谈
- JS实现转动效果
- 快速排序
- bzoj-1192 [HNOI2006]鬼谷子的钱袋(水题)