鱼C论坛

 找回密码
 立即注册
查看: 3112|回复: 10

关于字符数组的问题!!!急!!!!!

 关闭 [复制链接]
发表于 2012-3-22 17:42:18 | 显示全部楼层 |阅读模式
10鱼币
如 char str[10]={asddf};
char str1[100];
char str2[100]={asfasdfasdasdfasdf};
怎么 实现分多次复制str2到str1中与str比较.
求解 求解!!!!


最佳答案

查看完整内容

你试试下面的代码,有什么不明白的地方 可以密我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-3-22 17:42:19 | 显示全部楼层
你试试下面的代码,有什么不明白的地方 可以密我
  1. #include<stdio.h>
  2. #include<string.h>



  3. void main()  
  4. {   
  5.     char str[10]="word1";
  6.     char str1[100] = "";
  7.     char str2[100]="word1word2word3word3word2word1";

  8.     int str_len = strlen(str);
  9.     int str2_len = strlen(str2);

  10.     int group_count = str2_len / str_len;        // 分组次数
  11.     char *p1,*p2;
  12.     p1 = str1;
  13.     p2 = str2;
  14.     for( int i = 0; i < group_count; i++)
  15.     {
  16.         strncpy(p1, p2, str_len);
  17.         if(!strcmp(p1,str))
  18.             printf("%s和%s相等\n",p1,str);
  19.         else
  20.             printf("%s和%s不相等\n",p1,str);
  21.         p1 += str_len;
  22.         p2 += str_len;
  23.     }

  24. }
复制代码


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 17:59:38 | 显示全部楼层
多次复制我明白,但是 比较 是什么意思呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 18:09:10 | 显示全部楼层
本帖最后由 湮汐 于 2012-3-22 18:09 编辑
  1. #include<stdio.h>
  2. int main()
  3. {
  4. char str[10]={"asddf"};
  5. char str1[100];
  6. char str2[100]={"asfasdfasdasdfasdf"};
  7. int i;
  8. for(i=0;str2!='\0';i++)
  9.   str1=str2;
  10. str1='\0';
  11. printf("%s",str1);
  12. }
复制代码



楼主,字符串必须带上双引号,如果是字符必须要加上逗号,例如char str[10]={a,s,d,d,f};
至于你说的比较 ,用strcmp(str,str1);就可以了啊!即对两个字符串从左至右逐个字符相比(按照ASCII码值大小比较)
如果字符串1=字符串2,则返回值为0.
如果字符串1>字符串2,则返回值为一个正整数
如果字符串1<字符串2,则返回值为负整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-3-22 18:15:00 | 显示全部楼层

就是把str2中的按照str的长度拷入str1  再用str1和 str比较 相同就yes
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 18:33:34 | 显示全部楼层
Yogurt_lei 发表于 2012-3-22 18:15
就是把str2中的按照str的长度拷入str1  再用str1和 str比较 相同就yes

比较只有那一种方法,不能if(str==str1)
楼主可以上机去实验下吧!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 19:10:56 | 显示全部楼层
干什么复制来复制去的?不就是找子串吗?有现成的函数:
#include <string.h>
size_t strcspn( const char *str1, const char *str2 );
自己查下它的意思就OK了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 20:42:01 | 显示全部楼层
wAterLoo 发表于 2012-3-22 19:05
你试试下面的代码,有什么不明白的地方 可以密我

叔叔,我还是不太懂。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 20:56:42 | 显示全部楼层
本帖最后由 wAterLoo 于 2012-3-22 20:57 编辑
秋舞斜阳 发表于 2012-3-22 20:42
叔叔,我还是不太懂。。

就是把一个字符串分成n组,然后用这些组和str去比较
上例中就是 把str2 分成 n 组,然后分次存入str1中,再和str比较,然后把指针指向下一组

还有,别叫我叔叔
打击{:2_28:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-22 22:02:18 | 显示全部楼层
wAterLoo 发表于 2012-3-22 20:56
就是把一个字符串分成n组,然后用这些组和str去比较
上例中就是 把str2 分成 n 组,然后分次存入str1中, ...

好吧。wAterloo
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-3-24 18:36:47 | 显示全部楼层
下面的程序很好!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-7 00:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表