| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1923 人关注过本帖
标题:字符串的输入输出处理。
只看楼主 加入收藏
Unsmile
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2018-11-9
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:10 
字符串的输入输出处理。
不用指针该怎么写,小白不会循环输入多串字符串。
图片附件: 游客没有浏览图片的权限,请 登录注册

希望过程能详细一些
搜索更多相关主题的帖子: 字符串 输入 输出 处理 过程 
2018-11-26 20:16
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:5 
你先不用指针写一遍!代码发出来,我教你

学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-26 21:29
Unsmile
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2018-11-9
收藏
得分:0 
回复 2楼 Tomorrw_I
不会。。。我们也没学到指针。。。所以想问问有没有不用指针办法
2018-11-26 23:21
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:5 
用字符串结构动态分配
2018-11-27 05:22
Tomorrw_I
Rank: 10Rank: 10Rank: 10
等 级:禁止访问
威 望:6
帖 子:406
专家分:1712
注 册:2018-10-16
收藏
得分:0 
直接用一个字符串数组!
n刚内!输入一个,原样直接输出!

超过n行的,输入进字符串数组,遇到空格直接打印,回车!
依次进行,直到字符串结尾!


学C有用吗?
学C++有前途吗?
数据库有必要学吗?
……
别问,你还什么都不会,学就对了
……
2018-11-27 10:21
Unsmile
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2018-11-9
收藏
得分:0 
代码如下
#include<stdio.h>
#include<string.h>
int main(){
    int n;
    int i,k;
    scanf("%d",&n);
    char s[100][100],arr[100];
    for(i=0;i<n;i++){
        scanf("%s",&s[i]);
    }
    scanf("%s",&arr);
    int l=strlen(arr);
    for(i=0;i<n;i++){
        printf("%s\n",s[i]);
    }
    for(k=0;k<l;k++){
        if(arr[k]==' '){
            printf("%c",arr[k]);
            printf("\n");
        }else printf("%c",arr[k]);
    }
    return 0;
}

结果
图片附件: 游客没有浏览图片的权限,请 登录注册

看不出到底哪出了问题。
2018-11-27 19:15
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
回复 6楼 Unsmile
这个不符合题目要求(字符数不超过1000)
2018-11-28 04:39
Unsmile
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2018-11-9
收藏
得分:0 
回复 7楼 吹水佬
主要不是这个,是后面的字符输出不出来,把scanf改成gets也不行
2018-11-28 17:46
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
回复 8楼 Unsmile
按题目最大限度要求是100个1000字节,用局部数组(栈区)存放可能会出现异常。
先试试动态分配空间来存放字符串,并保存字符串地址,这样才能解决问题。
2018-11-29 04:46
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int GetStr(char *s)
{
    int n=0;
    scanf("%1000[^\n]%n", s, &n);
    while (getchar() != '\n');
    if (n==0)
        *s = '\0';
    return n+1;
}

void main()
{
    char s[1001], *p[100], *pi;
    int i, n, m;
    scanf("%d", &n);
    while (getchar() != '\n');
    if (n<1 || n>100)
        return;
    for (i=0; i<n; ++i)
    {
        m = GetStr(s);
        p[i] = (char *)malloc(m*sizeof(char));
        strcpy(p[i], s);
    }
    for (; i<100 && (m=GetStr(s)) && *s; ++i)
    {
        p[i] = (char *)malloc(m*sizeof(char));
        strcpy(p[i], s);
    }
    m = i;
    for (i=0; i<n; ++i)
        printf("%s\n", p[i]);
    for (; i<m; ++i)
    {
        pi = p[i];
        while (*pi)
        {
            if (sscanf(pi,"%s%n",s,&n)==1)
            {
                printf("%s\n", s);
                pi += n;
            }
            else
                ++pi;
        }
    }
    for (i=0; i<m; ++i)
        free(p[i]);
}
2018-11-29 09:54
快速回复:字符串的输入输出处理。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061678 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved