首页 > 解决方案 > 如何打印数组中的所有单词并将它们拆分到同一个函数中

问题描述

我有一个这样的程序来打印 word_array 中的所有单词,用分隔符分隔单词,最后一个单词后面有一个 \n。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<unistd.h>
#include<ctype.h>
#include<assert.h>
void capitalize(char * lowercase) {
    while (*lowercase) {
        *lowercase = toupper(*lowercase) ;
        lowercase++ ;
    }
    return ;
}

void capitalize_all(char ** string) {
    while (*string) {
        capitalize(*string) ;
        string++ ;
    }
    return ;
}
void print_everything(char ** string, char * delimiter) {
    scanf("string =",string) ;
    for(int i=0; sp[i]!='\0'; i++)
   {
      printf("%c", string[i]);

      if(*string[i]==' ')
      {
         printf("\n");
      }
   }
    return ;
}
int main(int argc, char * argv[]) {
    int char ;
    char ** the_word_array ;
    char ** pp ;
    int i ;
    while ((char = getopt(argc, argv, "")) != -1) {
        switch(char) {
            break ;
        default:
                printf("%s\n", USAGE_MESSAGE) ;
                return 0 ;
        }
    }
    argc -= optind; // these are globals defined in the getopt code
    argv += optind;

    the_word_array = (char **) malloc((sizeof(void *)*(argc+1))) ;
    for (i=0;i<argc;i++) {
        the_word_array[i] = argv[i] ;
    }
    the_word_array[argc] = NULL ;
    pp = the_word_array ;
    capitalize_all(pp) ;
    print_all(word_array," ") ;
    return 0 ;
}

我想打印数组中的所有单词 + 使用分隔符分隔单词,并在 print_everything 函数中的最后一个单词之后添加一个 \n 。怎么做?

标签: cpointers

解决方案


推荐阅读