20150503字符串实战
Posted wzg31796
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20150503字符串实战相关的知识,希望对你有一定的参考价值。
五.字符串切割
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");
以上是关于20150503字符串实战的主要内容,如果未能解决你的问题,请参考以下文章