char str[] ="i love c love c";
const char * split = " ";
char * p;
p = strtok (str,split);
while(p!=NULL) {
printf ("%s\n",p);
p = strtok(NULL,split);
}
这么循环
说下我的逻辑,不一定最优
先弄个结构体struct里面有一个char*和一个int
再建个struct的数组
在每次循环对比之前获得的struct数组中是否含有相同的字符串
有就计数器+1
没有就在数组中为null的地方加上一个成员为这个字符串和计数为1的struct
循环结束时遍历struct数组
好久没写C了,怕给你的代码有bug,就写思路把
追问strok函数我知道 我能把字符串按照空格分割成一组组词语 但是怎么计数啊?
追答用struct,字符串和数字存在一起,我上面提到了,初始创建的时候赋值1,每遇到相同的就+1.比如
char *str = "i love c love c";struct A{
char* string;
int count;
}word[100];
const char *kwd = " "
char * p;
int i;
int ifsame = 0;
p = strtok (str,kwd);
while(p){
for(i = 0;word[i].string[0];i++){
if(strcmp(word[i].string,p){
ifsame = 1;
break;
}
}
if(ifsame == 1){
word[i].count++;
ifsame = 0;
}
else{
word[i].string = p;
word[i].count = 1;
}
}
//最后输出
c语言 将输入的字符串按照空格分割
char str[] ="i love c love c";const char * split = " ";char * p;p = strtok (str,split);while(p!=NULL) {printf ("%s\\n",p);p = strtok(NULL,split);} 这么循环 说下我的逻辑,不一定最优 先弄个结构体struct里面有一个char*和一个int 再建个struct的数组 在每次循环对...
C语言如何将文件中一行内容按照空格分割,并将每个单词写入数组?_百度...
将文件中一行内容按照空格分割进行读取,可以采用fscanf("%s")来实现 实现过程:定义二维字符数组,用来接收读到的每个单词 以读方式打开文件 循环读文件,将单词逐个读入数组 循环结束后,关闭文件 输出数组中的单词,以验证 参考代码:include <stdio.h>int main(void){FILE *fp ;int i,j;char word...
C语言题目输入多行字符串(有可能有空格),最后一行为#号作为结束,按照由...
1、新建一个 字符串数组的定义与输出项目。2、添加一个 str.c 文件。3、包含stdio.h和stdlib.h头文件。4、输入main函数主体,system()和返回值。5、定义一个字符串变量str。6、使用printf()函数输出字符串变量str。7、运行程序,查看输出结果。
为什么C语言中输入要空格
如果输入56,则会当作一个整数:五十六。因此输入两个整数时,其间要用空白字符(如:空格、回车等)隔开,%d能自动跳过这些空白字符。scanf("%d%d", &m, &n);如果两个整数是25和36,则可输入:25 36 如果一定要输入56,把它作为两个1位数字的整数来读取,则应该写 scanf("%1d%1d", &m, &...
c语言中 如何分割字符串
c语言中没有 string class, 假定你指 char 字符串。用 sscanf 方法可以分割。char str2[]="aa 123,bb 456,cc 789,dd 000";按逗号分割为4 部分:aa 123 bb 456 cc 789 dd 000 --- char str[]="aa,bb,cc,dd";按逗号分割为4 部分:aa bb cc dd --- include <stdio.h> main(){...
求问一下关于c语言scanf函数的一些问题,就是说输入数据时,到底应该用...
3、%c 用来输入一个字符,不会跳过最开始的空白字符。从输入流的第一个字符开始。如果有%3c这种带宽度修饰时,会强制扫描宽度的字符,但是只会将第一个字符赋值给对应的变量。4、%s 用来输入一个字符串,会跳过开始的空白字符(空格 tab 回车都算空白字符),然后从第一个非空白字符开始,然后...
c语言中str的用法
如下所示:```char str[20] = "hello world";char *p = strtok(str, " "); \/\/ 按空格分割字符串 while (p != NULL) { printf("%s ", p);p = strtok(NULL, " ");} ```输出结果为:hello 和 world 分别在两行中打印出来。以上是C语言中str的常用用法。
C语言分割字符串
1、strtok函数:原型:char *strtok(char s[], const char *delim);功能:将一个字符串分解为一组字符串,s为要分解的字符串,delim为分隔符字符串;说明:当strtok函数在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\\0 字符。在第一次调用时,strtok()必需给予参数s字符串...
c语言scanf函数,在输入数据的时候,是按什么来判定数据输入完毕的呢?
每个数都有赋值然后按下回车就可以判定了啊,不是非得回车当间隔,如果是scanf("%d,%d,%d,&a,&b,&c")的话就是拿逗号判定间隔的,每个数都接收到赋值了,然后按下回车,这样判定输入完毕
c语言 输入一行字符,将其中的单词按照单词的长度由小到大的顺序输出
先单词间的空格分割字符串,把空格换成‘\/0’,然后用各个指针计算长度,排序输出