【C语言】去除字符串中的空格并分解单词

【C语言】去除字符串中的空格并分解单词,第1张

题目:去除字符串中的空格并分解单词。

要求:在main()中调用下述各函数,完成字符串中去除空格并分解单词的功能。

函数原型如下: 函数一:单词内是否包含数字 int IsNumIn(char word[]) 函数二:单词内是否包含空格 int IsSpcIn(char word[]) 函数三:去掉单词的前后空格,tab键和换行符 Trim(char oldWord[], char newWord[]) 函数四:单词内部有空格,分解成多个单词 Seg(char words[], char wArray[][100] ) 假设单词内部只有一个空格,没有两个连续空格的情况发生。

要求利用gets函数来获得用户输入的字符串,不能用scanf来获得用户输入的字符串 程序运行示例1: ros2e error 程序运行示例2: hello world hello world

#include 
#include 
#define N 100
int IsNumIn(char word[]);
int IsSpcIn(char word[]);
void Trim(char oldWord[], char newWord[]);
void Seg(char words[], char wArray[][100]);
int main()
{
    char str1[N], str[N], w_Arr[20][100];
    int i, j;
    for (i = 0; i < N; i++)
    {
        *(str1 + i) = 0;
        *(str + i) = 0;
    }
    for (i = 0; i < 20; i++)
    {
        for (j = 0; j < 100; j++)
            w_Arr[i][j] = 0;
    }
    gets(str1);
    Trim(str1, str);
    if (IsNumIn(str))
        printf("error");
    else
    {
        if (IsSpcIn(str))
        {
            Seg(str, w_Arr);
            for (i = 0; w_Arr[i][0] != '
'; i++) { puts(w_Arr[i]); } } else puts(str); } return 0; } int IsNumIn(char word[]) { int i; for (i = 0; *(word + i) != '

'; i++) { if (isdigit(*(word + i))) return 1; } return 0; } int IsSpcIn(char word[]) { int i; for (i = 0; *(word + i) != ''; i++) { if (isspace(*(word + i))) return 1; } return 0; } void Trim(char oldWord[], char newWord[]) { int i = 0, j = 0; while (isspace(*(oldWord + i))) i++; while (*(oldWord + i) != '

') { *(newWord + j) = *(oldWord + i); i++; j++; } i--; j--; for (; isspace(*(oldWord + i)); i--, j--) { *(newWord + j) = 0; } } void Seg(char words[], char wArray[][100]) { int i, j = 0, k = 0; for (i = 0; i < N; i++) { if (isalpha(*(words + i))) { wArray[j][k] = *(words + i); k++; } else { j++; k = 0; } } }

所使用的头文件

部分函数功能,有兴趣可以自己深入了解

   

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/662840.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-18
下一篇 2022-04-18

发表评论

登录后才能评论

评论列表(0条)

保存