| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 690 人关注过本帖
标题:字符串输出
只看楼主 加入收藏
世界真大
Rank: 2
等 级:论坛游民
帖 子:9
专家分:21
注 册:2010-10-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
字符串输出
函数作用:利用strcat函数将原字符串添加到目标字符串中,然后在for循环中将目标字符串中每个字符分别赋值给字符变量,然后打印出来
问题:只能打印前8个字符,第九个字符貌似等于循环变量i的值
编译环境:Vc6.0
函数原型:
#include<stdio.h>
#include<string.h>

int main()
{
    int i;
    char d[] = "abcde";
    char s[] = "fghi";
    char p;

    strcat(d,s);//将字符串s添加到d的结尾

    for(i=0;*(d+i)!='\0';i++)
    {
        p = *(d+i);
        printf("%c\n",p);
    }

    return 0;
}
打印结果:a b c d e f g h
各位大侠在自己的机子上试试看,感觉好像是编译器的问题,用while循环是没有问题的
搜索更多相关主题的帖子: 字符串 
2011-02-22 11:33
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:3 
#include<stdio.h>
#include<string.h>

int main()
{
    int i;
    char d[] = "abcde";
    char s[] = "fghi";
    char p;

    strcat(d,s);//将字符串s添加到d的结尾

    for(i=0;*(d+i)!='\0';i++)
    {
        p = *(d+i);
        printf("i=%d---%c\n",i,p);
    }
   
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册

我把程序稍改了一下,发现就像LZ的一样,第9个字符是一个空白,看不出什么问题,应该是编译器的问题吧。

   唯实惟新 至诚致志
2011-02-22 12:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:3 
strcat(d,s); d数组溢出了,好好看看strcat的说明

另外,for(i=0;*(d+i)!='\0';i++) 是多么丑陋呀,为什么不写成 d[i]!='\0' ?
2011-02-22 12:20
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:3 
root@~ #cat 1.c
程序代码:
#include <stdio.h>
#include <string.h>

int main (void) {

        int i;
        char d[]="abcde";
        char s[]="fghi";

        strcat(d,s);

        for(i=0;d[i]!='\0';i++) {

                printf ("d[%i]===>%c\n",i,d[i]);

        }

        return 0;

}

root@~ #gcc 1.c -o 1
root@~ #./1
d[0]===>a
d[1]===>b
d[2]===>c
d[3]===>d
d[4]===>e
d[5]===>f
d[6]===>g
d[7]===>h
d[8]===>i
root@~ #

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-02-22 12:28
点线面
Rank: 8Rank: 8
来 自:NO.-1
等 级:蝙蝠侠
帖 子:525
专家分:980
注 册:2011-1-3
收藏
得分:3 
3楼说得没有错,
并合后需要数组长度起码超过11,不然结果不可预测。

[ 本帖最后由 点线面 于 2011-2-22 12:41 编辑 ]

小代码,大智慧
2011-02-22 12:34
pcbaichi
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:486
专家分:1185
注 册:2010-11-13
收藏
得分:3 
lz回去看书吧,看看stract函数的用法及注意事项,stract要注意的就是被添加的字符串必须有足够的空间容纳后一个数组,当然,不止stract函数,还有其他的一些字符串处理函数,比如:strcpy(是不是复制函数我忘了)

[ 本帖最后由 pcbaichi 于 2011-2-22 15:57 编辑 ]

免费赠送河蟹一只
2011-02-22 14:08
wanxingdai
Rank: 1
等 级:新手上路
帖 子:31
专家分:6
注 册:2010-9-21
收藏
得分:3 
学习下
2011-02-22 15:48
快速回复:字符串输出
数据加载中...
 
   



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

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