C练习之 输入一系列单词,以逗号分割,分行输出,删除头尾空格

#define __STDC_WANT_LIB_EXT1__ 1            // Make optional versions of functions available
#include <stdio.h>
#include <string.h>
#include <ctype.h>

#define MAX_LEN 5000

int main(void)
{
    char list[MAX_LEN]; //stores the list of comma words
    const char comma[] = ","; //the only word delimiter

    printf("Enter a comma separated list of words:\n");

    gets_s(list ,sizeof(list));

    size_t index = 0;
    size_t i=0;
    do
    {
        if(isspace(list[i]))
            continue;
        list[index++] = list[i];//先执行list[index]=list[i],再执行index++
        i++;
    }while(list[i]!=‘\0‘);

    char *ptr = NULL;
    size_t list_len = strnlen_s(list,MAX_LEN);
    char *pWord = strtok_s(list,&list_len,comma,&ptr);
    if(pWord)
    {
        do
        {
            printf("%s\n",pWord);
            pWord = strtok_s(NULL,&list_len,comma,&ptr);
        }while(pWord);

    }
    return 0;
}
时间: 2024-10-13 11:39:39

C练习之 输入一系列单词,以逗号分割,分行输出,删除头尾空格的相关文章

统计输入的单词中有几个长度大于n的,n是自己指定的,用函数对象实现

#ifndef COUNT_WORD_H #define COUNT_WORD_H #include <string.h> #include <iostream> #include <iterator> #include <vector> #include <algorithm> class GT_cls{ public: GT_cls(size_t val = 0) :bound_(val){} bool operator()(const st

C 循环统计输入的单词个数和字符长度

#include <stdio.h> #include <Windows.h> int main(void) { char word[128]; int count = 0; int length = 0; printf("请输入任意多个单词:\n"); while (1) { if (scanf("%s",word) != -1) { count++; length += strlen(word); } else { break; } }

oralce逗号分割变多行 Oracle中REGEXP SUBSTR函数

Oracle中REGEXP_SUBSTR函数 Oracle中REGEXP_SUBSTR函数的使用说明: 题目如下: 在oracle中,使用一条语句实现将'17,20,23'拆分成'17','20','23'的集合. REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier) __srcstr     :需要进行正则处理的字符串 __pattern    :进行匹配的正则表

输入三个数a,b,n,输出a和b不大于n的公倍数的个数

题:输入三个数a,b,n,输出a和b不大于n的公倍数的所有个数. 这题的思想是先求得a和b的最大公约数,然后用a和b的积除以最大公约数,得到最小公倍数,再持续加上最小公倍数,直到超过n,记下n的个数.如:8,12,100,最大公约数为4,则最小公倍数为24.则公倍数为:24.48.72.96,即总共有4个. 代码如下: 1 #include<iostream> 2 #include<algorithm> 3 4 using namespace std; 5 6 int main()

Java将一段逗号分割的字符串转换成一个数组

String 类:String 类代表字符串.Java 程序中的所有字符串字面值都作为此类的实例实现.字符串是常量,它们的值在创建之后不能更改.字符串缓冲区支持可变的字符串.因为 String 对象是不可变的,所以 可以共享.String 类包括的方法可用于检查序列的单个字符.比较字符串.搜索字符串.提取子字符串.创建字符串副本并将所有字符全部转换为大写或小写.Java 语言提供对字符串串联符号("+")以及将其他 对象转换为字符串的特殊支持.字符串串联是通过 StringBuilde

c语言:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

输入一行字符,分别统计出其中英文字母.空格.数字和其他字符的个数. 解:程序: #include <stdio.h> int main() { char c; int letters=0,space=0,digit=0,other=0; printf("请输入一行字符:"); while ((c=getchar())!='\n') { if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= '

【字符串】面试题之以逗号分割字符串,形成二维数组

题目: 有一个字符串符合以下特征("abcdef,acccd,eeee,aaaa,e3eeeee,sssss,"), 要求写一个函数(接口),输出以下结果 1) 以逗号分割字符串,形成二维数组,并把结果传出: 2) 把二维数组行数运算结果也传出. 请自己定义一个接口(函数). 要求1:能正确表达功能的要求,定义出接口(函数)(30分): 要求2:正确实现接口(函数),并实现功能(40分): 要求3:编写正确的测试用例.(30分). //头文件 #include <stdio.h&

Java不规则字符串按照逗号分割的解析方法(字段中又含有逗号)

/** * Java字符串逗号分割解析方法 * 本专门针对双引号中还有逗号或者某个字段无双引号的情况而设计的 * 例如要将 字符串 String sss="101,\"a\",\"中国,江苏\",\"b\",\"中国,北京\",1,0,\"c\""按照逗号进行分割解析; * 正确的split的结果是 (101)(a)( 中国,江苏) ( b)( 中国,北京) ( 1)( 0)( c) *

编程题:用二维字符串数组实现。从键盘输入三个学生姓名,并输出。

#include<stdio.h> #include<string.h> void main() { char name[3][30]; int i; for(i=0;i<3;i++) gets(name[i]);  /*name[i]是一个一维字符数组*/ for(i=0;i<3;i++) printf("%s\n",name[i]); } 编程题:用二维字符串数组实现.从键盘输入三个学生姓名,并输出.,布布扣,bubuko.com