#include<string.h>
#include<ctype.h>
int main(){
char str1[20]={0},str2[20]={0},str3[20]={0},str4[20]={0};
scanf("%s%s",str1,str2);
int j=0;
//task 1
int i=strcmp(str1,str2);
if (i>0)
printf("%s > %s\n",str1,str2);
if (i==0)
printf("%s = %s\n",str1,str2);
if (i<0)
printf("%s < %s\n",str1,str2);
//task2
int n,x,y,len_str2=strlen(str2),len_str1=strlen(str1);
scanf("%d%d%d",&n,&x,&y);
for(i=0;i<20;i++){
str3[i]=str1[i];
}
if (n >= len_str2){
strcat(str3,str2);
for(i=x;i<=y;i++){
str3[i]=toupper(str3[i]);
}
int len_str3=strlen(str3);
printf("the length of \"%s\" is %d\n",str3,len_str3);
}
else{
for(i=len_str1,j=0;i<n+len_str1;i++,j++){
str3[i]=str2[j];
}
for(i=x;i<y;i++){
str3[i]=toupper(str3[i]);
}
int len_str3=strlen(str3);
printf("the length of \"%s\" is %d\n",str3,len_str3);
}
//task 3
for(i=0;i<20;i++){
str2[i]=str3[i];
str2[i]=tolower(str2[i]);
}
i=strcmp(str3,str2);
if (i>0)
printf("%s > %s\n",str3,str2);
if (i==0)
printf("%s = %s\n",str3,str2);
if (i<0)
printf("%s < %s\n",str3,str2);
//task4
int len_str3=strlen(str3);
if (len_str3/2-10>0)
printf("%s\n",str3);
else
printf("%s\n",str2);
return 0;
}
这个题目为什么我的输出会变成这样
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- bwangccc 2016-11-08 10:36关注
抱歉看错了 不过我觉得你可以memset先把str2清零再复制过去 还有就是循环感觉不要用20来控制 用strlen来控制
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 java如何提取出pdf里的文字?
- ¥100 求三轴之间相互配合画圆以及直线的算法
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable
- ¥15 安卓adb backup备份应用数据失败
- ¥15 eclipse运行项目时遇到的问题
- ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
- ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
- ¥15 自己瞎改改,结果现在又运行不了了
- ¥15 链式存储应该如何解决