指针-c++程序求教,strtok记号化句子,逆序输出,求大神

问题描述

c++程序求教,strtok记号化句子,逆序输出,求大神

#include
using namespace std;
#include
using namespace std;
char *t[50];
void print(char*tptr,char*tptrr,int i)
{
if(tptrr!=NULL) {t[i]=tptr;tptr=strtok(NULL," ");tptrr=strtok(NULL," ");print(tptr,tptrr,i+1);cout<<t[i]<<" ";}
else cout<<tptr<<" ";
}
int main()
{
char a[50];char b[50];
char *tptr;char*tptrr;
cout<<"输入短句子:"<<endl;
cin.getline(a,50);
for(int j=0;j<50;j++)b[j]=a[j];
tptr=strtok(a," ");tptrr=strtok(b," ");tptrr=strtok(NULL," ");
print(tptr,tptrr,0);
return 0;
}
仅有输入奇数个词语时不会崩溃,而且奇数个的时候也只显示第奇数个词语,跪求大神

解决方案

在函数peint里。每次递归做了两次strtok,所以当然就只有奇数的单词被保存到t了。

#include <iostream>
using namespace std;
char *t[50];
void print(char*tptr, char*tptrr, int i)
{
    if (tptrr != NULL)
    {
        t[i] = tptr;
        tptr = tptrr; //此处修改了
        tptrr = strtok(NULL, " ");
        print(tptr, tptrr, i + 1);
        cout << t[i] << " ";
    }
    else
        cout << tptr << " ";
}
int main()
{
    char a[50]; char b[50];
    char *tptr; char*tptrr;
    cout << "输入短句子:" << endl;
    cin.getline(a, 50);
    for (int j = 0; j < 50; j++)
        b[j] = a[j];
    tptr = strtok(a, " ");
    tptrr = strtok(b, " ");
    tptrr = strtok(NULL, " ");
    print(tptr, tptrr, 0);
    return 0;
}

另外。这个程序里还隐藏着一点小问题的。当输入的字符串为空的时候,就Runtime Error了

时间: 2024-11-03 22:04:59

指针-c++程序求教,strtok记号化句子,逆序输出,求大神的相关文章

qt5-在Qt中图像的拉普拉斯变换,一运行程序就崩溃了,下面是代码,求大神看一下。

问题描述 在Qt中图像的拉普拉斯变换,一运行程序就崩溃了,下面是代码,求大神看一下. void MainWindow::LT() { QImage *SobelImage=new QImage(img->width(), img->height(),QImage::Format_ARGB32); int width=img->width(),height=img->height(); int pixelNum=width*height; int i,j,k,l; float rRe

编程-有一个小程序急用,但是我不会编译,求大神帮忙编译啊~~~太感谢!!

问题描述 有一个小程序急用,但是我不会编译,求大神帮忙编译啊~~~太感谢!! 如题,是一个小程序,用的是自己的makefile,下载下来了但是不会编译啊~~~~要exe格式的,那位大神可以帮忙编译出来真是太感激不尽!或者教一下我~~~太感谢了!编译好请发zhaojialiangsuper@126.com~源码地址 源码:https://releases.stm32flash.googlecode.com/git/stm32flash-0.4.tar.gz 解决方案 http://download

mfc-MFC的Ondraw函数上加了一些代码后,最大化最小化都会被Asserted?求大神解答!

问题描述 MFC的Ondraw函数上加了一些代码后,最大化最小化都会被Asserted?求大神解答! 加了被注释的代码后就会asserted... void C技能实践View::OnDraw(CDC* pDC) { C技能实践Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; // TODO: 在此处为本机数据添加绘制代码 /* static int i = 0; m_chessboard.LoadBitmap(I

想把天气预报的程序和SQLite数据库链接起来 该怎么弄 求大神指教

问题描述 packagecom.bzu.weatherforecast;importorg.ksoap2.serialization.SoapObject;importandroid.app.Activity;importandroid.content.ContentValues;importandroid.os.Bundle;importandroid.view.Menu;importandroid.view.View;importandroid.view.View.OnClickListen

在线跪求教水晶报表月产量报表问题,求大神

问题描述 查询条件时间:年月如201201根据SQL得到结果如下产品产量日期A10020120101B10020120101C10020120101A10020120102B10020120102C10020120102...A10020120131B10020120131C10020120131想要报表显示的样子为下面的样子2012010120120102......20120131A100100100B100100100C100100100请问有什么好的方案嘛? 解决方案 解决方案二:没有人

c++-求大神帮我把这机构化的C++程序改成C++面向对象的程序,有酬谢(单项选择题标准化考试系统)

问题描述 求大神帮我把这机构化的C++程序改成C++面向对象的程序,有酬谢(单项选择题标准化考试系统) #include<stdio.h>#include<stdlib.h>//应用动态存储分配函数//#include<time.h># define LEN sizeof(struct question)struct question{ char ask[200];//选择题题目// char answer[4][80];//选择题选项每个答案的长度// int rig

指针-C语言,请问这个逆序输出的程序哪里错了

问题描述 C语言,请问这个逆序输出的程序哪里错了 #include int main(void) { char ar[] = "abc"; char ar1[4] = {0}; //设置指针p指向数组ar的首地址 char *p = ar; //使指针p指向数组ar的最后一个有效字符 for (; *p++ != '';) ; p--; //获取数组ar的长度 int i,j; i = strlen(ar); //将逆序排列存储到数组ar1中 for (j = 0; j < i;

求教各位看过linuxunix 系统编程手册的大神

问题描述 求教各位看过linuxunix 系统编程手册的大神 小弟使用centos 6.7系统,在编译书中程序时总是出现许多错误,编译前已将所有头文件移至/usr/include 中 解决方案 是不是环境变量没有配置好呀... 你echo $PATH看一下 解决方案二: 那该怎么配置才算正确呢 解决方案三: 看看usr/include在不在搜索路径中,用echo $PATH

mfc c++-新人求教,我用mfc做了一个tcp fin的端口扫描器,死后得不出结果,求大神帮忙找出问题

问题描述 新人求教,我用mfc做了一个tcp fin的端口扫描器,死后得不出结果,求大神帮忙找出问题 cpp文件 // scanDlg.cpp : implementation file// #include ""stdafx.h""#include ""scan.h""#include ""scanDlg.h""#include ""afxdialogex.h&qu