Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 926|回复: 3
打印 上一主题 下一主题

我要的output不是我想要的output~高手帮帮~

[复制链接]

2

主题

0

好友

17

积分

初级会员

Rank: 1

跳转到指定楼层
1#
发表于 2010-8-20 09:32 PM |只看该作者 |倒序浏览
我的概念是从用户得到一系列的数学问题~然后我要分析input~再继续做我要的~例如用户输入1+2~我要用string来读取~然后我要把1存放~再存放 '+' ~又在存放2~一下就是我的程式~
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
int main()
{
char string[100];
char newstring[100];
int n;
int i=0;
int k=0;
char x[1];
char s[20];
char s2[10];
printf("?");
scanf("%s",string);
n=strlen(string);
for(i=0;i<n;i++)
{
if(string[i]!='+')
{
newstring[i]=string[i];
strncpy(s[i],newstring[i],i);
}
else
{
x[i]=string[i];
strncpy(s2[i],x,1);
break;
}
}
for(k=0;k<n;k++)
{
printf("%s",s[i]);
printf("\n");
}
return 0;
}

所以我的printf应该秀我
1
+
2
可是它给我全部<null>
我的程式到底哪里出了问题?我是新手~很生疏~




收藏收藏0

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

2#
发表于 2010-8-20 10:14 PM |只看该作者
本帖最后由 Super-Tomato 于 2010-8-20 10:21 PM 编辑

看注解部份

  1. #include<stdio.h>
  2. #include<string.h>
  3. #include<math.h>
  4. #include<stdlib.h>
  5. int main()
  6. {
  7. char string[100];
  8. char newstring[100];
  9. int n;
  10. int i=0;
  11. int k=0;
  12. char x[1];
  13. char s[20];
  14. char s2[10];

  15. printf("?");
  16. scanf("%s",string);
  17. n=strlen(string);
  18. for(i=0;i<n;i++)
  19. {
  20. if(string[i]!='+')
  21. {
  22. newstring[i]=string[i];
  23. strncpy(s[i],newstring[i],i); //注意 strncpy 的参数(parameters)用法
  24. }
  25. else
  26. {
  27. x[i]=string[i];
  28. strncpy(s2[i],x,1);  //注意 strncpy 的参数(parameters)用法
  29. break;
  30. }
  31. }
  32. for(k=0;k<n;k++)
  33. {
  34. printf("%s",s[i]);  //這里怎么是 i
  35. printf("\n");
  36. }
  37. return 0;
  38. }
复制代码


回复

使用道具 举报

2

主题

0

好友

17

积分

初级会员

Rank: 1

3#
发表于 2010-8-20 11:31 PM |只看该作者
strncpy(s[i],newstring[i],i); //注意 strncpy 的参数(parameters)用法
意思是说我的 i 出了问题?因为如果strncpy(s1,s2)就是把s2 copy进s1里面~但是最后那个expression我就不大会用了~


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

4#
发表于 2010-8-21 07:01 AM |只看该作者
strncpy(s,newstring,i); //注意 strncpy 的参数(parameters)用法
意思是说我的 i 出了问题?因为如果strncpy(s1,s2)就是把s2 copy进s1里面~但是最后那个expression我就不大会用了~
yangss 发表于 2010-8-20 11:31 PM



如果你只是要 copy 過去的話,使用 strcpy 即可
而 C 在一開始注重的是了解變數的形态,既然你已經說了是把  s2 copy 到 s1 的話,那麽就是說 strcpy 的参數就必須是 string 而不是 char

最後就算你修改成功了,但是肯定 s 不會是输出 1 + 2 的结果而是 1 2


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-25 03:33 PM , Processed in 0.122203 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部