将字符串中的单词分割,存入二维数组后输出

思路

每次内部循环需要找到一个单词,将其存入数组。外循环遍历至字符串末尾结束。

代码

/*************************************************************************
    > File Name: word_split.c
    > Author: KrisChou
    > Mail:zhoujx0[email protected]
    > Created Time: Sun 24 Aug 2014 10:42:48 AM CST
 ************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 128
#define WORD_CNT 128
#define WORD_LEN 256

static int my_isspace(char c)
{
    if(c == ‘ ‘ || c == ‘\n‘ || c == ‘\t‘ || c == ‘\v‘)
        return 1;
    else
        return 0;
}

static void show(char(*words)[WORD_LEN],int cnt)
{
    int index;
    for(index = 0; index < cnt; index++)
    {
        printf("%15s",words[index]);
    }
}

static void word_save(char *line, int bg, int end, char *dest)
{
    int index,index_dest;
    for(index = bg,index_dest = 0; index <= end;index++,index_dest++ )
    {
        dest[index_dest] = line[index];
    }
    dest[index_dest] = ‘\0‘;
}

static int word_split(char *line,char(*words)[WORD_LEN])
{
    int bg,end;
    int word_cnt;
    bg = 0;
    word_cnt = 0;
    while(line[bg] != ‘\0‘)
    {
        while(my_isspace(line[bg]))
        {
            bg++;
        }
        if(line[bg] == ‘\0‘)
        {
            break;
        }
        end = bg;
        while(line[end] != ‘\0‘ && !my_isspace(line[end]))
        {
            end++;
        }
        word_save(line,bg,end-1,words[word_cnt++]);
        bg = end;
    }
    return word_cnt;
}

int main(int argc, char *argv[])
{
    int cnt;
    char line[N];
    char words[WORD_CNT][WORD_LEN];
    while(fflush(stdin),gets(line) != NULL)
    {
        cnt = word_split(line,words);
        show(words,cnt);
        printf("\n");
    }
    return 0;
}
时间: 2024-10-22 02:55:47

将字符串中的单词分割,存入二维数组后输出的相关文章

44.从键盘输入12个数存入二维数组a[3][4]中,编写程序求出最大元素的值及它所在的行号和列号

//1.建立二维数组 //2.运用循环,将内容输入到数组中 //3.求出最大元素,并输出行号和列号 #include<iostream> using namespace std; int main() { int a[3][4]; int Max=0;//赋值之前需要先置为0 cout<<"please input 12 numbers: "<<endl; for(int i=0;i<3;i++)//嵌套循环,用于向二维数组中输入内容 { fo

Java读取excel指定sheet中的各行数据,存入二维数组,包括首行,并打印

1. 读取 //读取excel指定sheet中的各行数据,存入二维数组,包括首行 public static String[][] getSheetData(XSSFSheet sheet) throws IOException { String[][] testArray = new String[sheet.getPhysicalNumberOfRows()][]; for(int rowId =0;rowId<sheet.getPhysicalNumberOfRows();rowId++)

转:用STL中的vector动态开辟二维数组

用STL中的vector动态开辟二维数组 源代码:#include <iostream>#include <vector>using namespace std;int main(){ int m, //行数     n; //列数 cout << "input value for m,n:"; cin>>m>>n;  //注意下面这一行:vector<int后两个">"之间要有空格!否则会被认

2016/1/10 作业 1, 二维数组遍历输出求和 2,转置运算???? 3,九宫格?? 后两个存在问题

1 public class arr1 { 2 3 4 public static void main(String[] args) { 5 // 创建二维数组arr[][],输出二维数组所有元素的和. 6 7 int arr[][]={{1,3,5,7,9},{21,23,25,27,29}, 8 {12,14,16,18},{32,34,36,38}}; 9 int sum=0; 10 System.out.println("二维数组遍历"); 11 // for循环 遍历 求和

二维数组的输出--(指针输出 和 指针数组输出)

当我第一次看见数组指针和指针数组这两个名字的时候,我以为是一个东西呢,当看到英文解释就知道这两个是不一样的了. 指针数组:array of pointers,用于存储指针的数组,也就是数组元素都是指针 数组指针:a pointer to an array,指向数组的指针,数组可以是任意维的 下面举例说明: int a[3][4]   --->这个无需多说,就是一个二维数组. int (*p)[4]   --->就相当于int p[][4],它是一个二维数组的指针,可以指向一个第二维度为4的二维

php,二维数组的输出出现了问题,提示:Notice: Array to string conversion

<?php $arr=array(array("111","222","333"),array("444","555","666")); print_r("{$arr[0][1]}"); ?> 这样就可以了,多维数组.以及下标不是简单数值的数组,都需要{}起来. 将数据传递到javascript中时同样适用

smarty中函数的使用以及二维数组的使用

1.虽然讲究前后台分离,但是如果如果有的项目,前后台分离的不彻底,或者有些必须要在HTML中处理,还是要用到PHP中的函数的: <% if $Role|in_array:$menuRole[$cItem.2] %> <li><a href="<% $cItem.2 %>"><% $cItem.1 %></a></li> <% /if %> 2.碰到这种情况:多位数组,因为是循环遍历出来的,其

在二维数组中查找一个数,二维数组是从左到右,从上到下依次递增

public class FindNum { public static boolean findANum(int[][] array, int target) { int row = array.length;//行数 int cloumn = array[0].length;//列数 int i = 0; int j = cloumn - 1; boolean found = false; while(i <= row-1 && j >= 0) { if(target &l

Js中,刚学完二维数组和函数,输出杨辉三角

var a= Array(5);for ( var i= 0;i<a.length;i++){ a[i]=Array(i+1); a[i][0]=1; for(var j=0;j<a[i].length;j++) { if(i==j) { a[i][j]=1 } else{ if((i-1)>=0&&(j-1)>=0) { a[i][j]=a[i-1][j-1]+a[i-1][j];} } } }; for(var i in a){ for(var j in a[i