黑马程序员技术交流社区
标题:
C语言 字符串赋值
[打印本页]
作者:
愿我能
时间:
2014-4-16 02:19
标题:
C语言 字符串赋值
之前有道基础测试题没做出来,想着马上要准备入学考试,C都没搞定,寝食难安啊,就是不懂如何将两个字符串中相同的内容提取出来,看过网上的一些方法,都用的许多不懂的函数,自己看很迷糊,就是想知道比较两个字符串,都是单词,如何赋值个一个新的字符串,这一步不太会(我当时的题目是得到多个字符串最大公共字符串,感觉java的话好简单)
作者:
FlyTrem
时间:
2014-4-16 09:42
#include<stdio.h>//调用printf函数需要声明的头文件
#include<string.h>//调用strlen函数需要声明的头文件
//定义函数,主要是用来辨别各个字符串的长度,返回最短的字符串长度
int len(char a[], char b[], char c[])
{
int size,size1, size2,size3;
size1 = strlen(a);
size2 = strlen(b);
size3 = strlen(c);
size = size1;
if (size2 < size)
size = size2;
if (size3 < size)
size = size3;
return (size);
}
//定义主函数
int main()
{
int k,size,i=0,max=0,j=0,m;//定义整型变量看,k,i,max,j,m,并将0赋给i,max,j。
//定义字符串a[],b[],c[]。
char a[] = "afasdfdaaaaafghssggggg";
char b[] = "asasdfsaaaaadagggg";
char c[] = "dsasdfdaaaaafadfggg";
size = len(a, b, c);//引用函数len
for (k = 0; k < size; k++)//遍历小于siae字节数的所有字符
{
if (a[k] == b[k] && a[k] == c[k])//如果a[k] == b[k] && a[k] == c[k]则执行下面语句
{
i++;
continue;//跳出本次循环,直接判断上级循环条件
}
if (i>max)
{
//记录最长公共字符的起始角标和总结角标
max = i;
j = k - i;
m = k;
i = 0;
}
}
printf("最大子字符串是\n");
//历遍j到(m-1)的所有字符
for (i = j; i<m; i++)
//打印每个a[i]
printf("%c", a[i]);
return 0;//结束函数
}
复制代码
参考一下,希望有帮助!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2