| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1316 人关注过本帖
标题:字符串的复制
只看楼主 加入收藏
爱睡觉的猫
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2017-4-19
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:8 
字符串的复制
找不出来哪里错
图片附件: 游客没有浏览图片的权限,请 登录注册
看不懂为什么错
#include<stdio.h>
#include <stdlib.h>
void change(char str[]);
int bijiao(char str1[],char str2[]);
int fuzhi(char str3[],char str4[]);
int main()
{
    int val;
    char a[100];
    printf("请输入大写字母:");
    gets(a);
    change(a);
    printf("输出小写字母:");
    puts(a);
    char str1[100],str2[100];
    printf("请输入要比较的字符串:");
    gets(str1);
    gets(str2);
    if ((val = bijiao(str1,str2))==0)
    printf("等于");
    if (val< 0)
    printf("小于");
    if (val> 0)
    printf("大于");
    char str4[10];
    printf("请输入字符串:");
    scanf("%s",&str4);
    char str3[10];
    printf("原 串 : %s\n",str4);
    printf("目标串 : %s\n",fuzhi(str3,str4));
    return 0;
}
void change(char str[])
{
    int i;
    for(i=0;str[i]!='\0';i++)
    if(str[i]>='A'&&str[i]<='Z')
        str[i]+=32;
}
int bijiao(char str1[],char str2[])
{
    int i;
    for(i=0;str1[i]!='\0'; i++)
    {
        if(str1[i]>str2[i])
            return 1;
        else if(str1[i]<str2[i])
            return -1;
    }
        return 0;
}
int fuzhi(char str3[],char str4[])
{
    int i = 0;
    while(str3[i] = str4[i]) i++;
    return str3;
}
搜索更多相关主题的帖子: 字母 字符串 change include 
2017-05-19 10:00
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10590
专家分:43142
注 册:2014-5-20
收藏
得分:0 
好象没考虑两个字符串长度不等时的情况。
2017-05-19 10:20
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
返回的是char型指针,函数原型不对
程序代码:
char * fuzhi(char str3[], char str4[])
{
    int i = 0;
    while (str3[i] = str4[i]) i++;
    return str3;
}
2017-05-19 10:22
爱睡觉的猫
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2017-4-19
收藏
得分:0 
回复 3楼 grmmylbs
那个*是什么意思
2017-05-19 10:36
爱睡觉的猫
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2017-4-19
收藏
得分:0 
回复 2楼 吹水佬
这个不是复制吗,还要考虑长度?
2017-05-19 10:43
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:0 
还没学指针吗?
2017-05-19 10:51
爱睡觉的猫
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2017-4-19
收藏
得分:0 
回复 6楼 grmmylbs
还没上到
2017-05-19 11:02
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
收藏
得分:20 
那你还不如 改成这样:
程序代码:
#include<stdio.h>
#include <stdlib.h>
void change(char str[]);
int bijiao(char str1[], char str2[]);
int fuzhi(char str3[], char str4[]);
int main()
{
    int val;
    char a[100];
    printf("请输入大写字母:");
    gets(a);
    change(a);
    printf("输出小写字母:");
    puts(a);
    char str1[100], str2[100];
    printf("请输入要比较的字符串:");
    gets(str1);
    gets(str2);
    if ((val = bijiao(str1, str2)) == 0)
        printf("等于");
    if (val< 0)
        printf("小于");
    if (val> 0)
        printf("大于");
    char str4[10];
    printf("请输入字符串:");
    scanf("%s", &str4);
    char str3[10];
    printf("原 串 : %s\n", str4);
    fuzhi(str3, str4);
    printf("目标串 : %s\n", str3);
    return 0;
}
void change(char str[])
{
    int i;
    for (i = 0; str[i] != '\0'; i++)
        if (str[i] >= 'A'&&str[i] <= 'Z')
            str[i] += 32;
}
int bijiao(char str1[], char str2[])
{
    int i;
    for (i = 0; str1[i] != '\0'; i++)
    {
        if (str1[i]>str2[i])
            return 1;
        else if (str1[i]<str2[i])
            return -1;
    }
    return 0;
}
int fuzhi(char str3[], char str4[])
{
    int i = 0;
    while (str3[i] = str4[i]) i++;
    return 0;
}
2017-05-19 11:10
爱睡觉的猫
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2017-4-19
收藏
得分:0 
回复 8楼 grmmylbs
多谢
2017-05-19 11:21
快速回复:字符串的复制
数据加载中...
 
   



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

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