定义一个一维字符指针数组,并利用不定数量(不多于10)个字符串将其初始化,然后将各字符串输出。

比如:
输入
asdfw uuio fff tyu

输出为
tyu
fff
uuio
asdfw
(用C语言,最好加上注释,我是初学者,很多地方还不明白,是大神的就关照一下)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
    char * temp[10] = { 0 };//定义了指针数组, 并将其初始化, 每个指针的值为 NULL
    printf("请输入字符串 : ");
    //这里没有分配内存空间, 直接在buff上改的, 如果需要的话, 可以自己 malloc
    char buff[128] = { 0 };//定义一个缓冲字符串, 用来保存输入的字符串
    gets(buff);//从键盘读取字符串, 注意再输入的时候最后面需要输入一个空格, 如 "aaa ddd kkk "
    char * p1 = buff;//定义了两个指针变量, 都初始化为 buff
    char * p2 = buff;
    int count = 0;//计数器
    while (*p1 != '\0')//循环查找字符串
    {
        if (*p1 == ' ')//当字符等于空格的时候
        {
            *p1 = '\0';//将这个空格替换成为 '\0'
            p1++;//指针后移
            temp[count] = p2;//p2 保存的是每个子字符串的开头, 每次将这个开头赋值给temp[count]
            p2 = p1;//重新赋值 p2 让 p2每次都是保存的每个子串的开头
            count++;//计数器++
        }
        p1++;//指针++
    }
    for (int i = 0; i < count; i++)
    {
        printf("%s\n", temp[count - 1 - i]);//循环打印输出, 因为是逆序, 所以 temp[count - 1 - i]
    }
    system("pause");
}

追问

大神,你的代码有点问题,输入asdfw uuio fff tyu,后面那个tyu怎么消失了?

追答

每次输入的时候在最后面输入空格,因为程序是按照空格来判断的

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网