| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1850 人关注过本帖
标题:字符串分行控制输出问题,请指点。
只看楼主 加入收藏
winglesswu
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2013-1-28
结帖率:71.88%
收藏
已结贴  问题点数:10 回复次数:10 
字符串分行控制输出问题,请指点。

编写一个程序,要求把用户输入的字符串按照要求输出,比如:
char s[ ] = "My home is in Toronto    Ontario";
int i;

i =  wordWrap(s, 7);
printf("%d\n%s\n",i s);
调用函数后输出:
4
My home
is in
Toronto
Ontario
下面是小弟写的,请指点,谢谢。
#include<stdio.h>
/*wordwrap*/
main()
{

char s[100];
int i;

printf("Please enter the string you want to do wordwrap:\n");
scanf("%s", s);

i =  wordWrap(s, 7);
printf("%d\n%s\n", i, s);
}
int wordWrap( char s[ ], int width )
{
  int x, y;
  for (x=0; x<width; x++)
  {
  printf("s[x]");
  if (x%7==0)
  printf("\n");
  }
  y=width/7
  return y;
}
}

[ 本帖最后由 winglesswu 于 2013-4-15 10:16 编辑 ]
搜索更多相关主题的帖子: 比如 include 字符串 用户 
2013-04-15 09:33
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:5 
char s[ ];
这句算什么东西呀?

总有那身价贱的人给作业贴回复完整的代码
2013-04-15 09:43
winglesswu
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2013-1-28
收藏
得分:0 
以下是引用embed_xuel在2013-4-15 09:43:03的发言:

char s[ ];
这句算什么东西呀?

我们学校的教程就是这么印刷的,可能是不定义字符串,用户输入的是什么就是什么吧。
2013-04-15 10:01
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
你觉得呢?学到数组了吗?

总有那身价贱的人给作业贴回复完整的代码
2013-04-15 10:10
winglesswu
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2013-1-28
收藏
得分:0 
char s [ ]不是数组啊, 是character string啊
2013-04-15 10:15
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
回复 3楼 winglesswu
怎么改了?

[ 本帖最后由 embed_xuel 于 2013-4-15 10:18 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2013-04-15 10:17
winglesswu
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2013-1-28
收藏
得分:0 
我把char s[ ]改成char s[100]了。
2013-04-15 10:17
y3765258
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:106
专家分:172
注 册:2013-4-9
收藏
得分:5 
scanf("%s", s);  换成 gets(s);   scanf 函数 遇到 空格 结束输入。 后面肯定也就不多了。
还有按照这个题目的要求,自定义函数里面是不应该输出的。不然你的数字怎么在前面输出呢?
当然是可以做到在自定义函数里面输入,但自定义函数应该是 void 型。
方法很简单  在每过n字符后的n+1字符赋成空格。 可以先写个替换数组方便计算。
#include "stdio.h"
#include "string.h"
int main()
{
    int i,j,k;
    char a[50];
    printf("please input your data!\n");
    gets(a);
    i=wrodwrap(a,7);
    printf("%d\n",i);
    for(i=0;a[i]!=0;i++)
        printf("%c",a[i]);
}
int wrodwrap(char *a,int n)
{
    int i,j=0,k;
    char b[50];
    for(i=0;a[i]!=0;i++)
    {
        if(a[i]==' '&&a[i+1]==' ')
            continue;
        if(a[i]==' '&&a[i-1]==' ')
            continue;
        b[j++]=a[i];
        if(j%7==0||(a[i+1]==' '&&j%7>=5))
        {
            i++;
            b[j++]='\n';
        }
    }
    b[j++]=0;
    strcpy(a, b);
    return j/7;
}
图片附件: 游客没有浏览图片的权限,请 登录注册

有问题一起探讨,一起进步。
2013-04-15 10:33
y3765258
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:106
专家分:172
注 册:2013-4-9
收藏
得分:0 
你写的自定义函数里的 char s[]  是对的。
应为  实际上传送过去的只是 数组的守地址而已,并没有传送数组的纬度。
而且  编译器 会自动把char s[]  转换成 char *s.

有问题一起探讨,一起进步。
2013-04-15 10:41
winglesswu
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2013-1-28
收藏
得分:0 
谢谢大家指点。
2013-04-15 10:56
快速回复:字符串分行控制输出问题,请指点。
数据加载中...
 
   



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

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