c语言分行比大小,c语言(VC++6。0)搜索的内容打印时如何一样整齐分行?

匿名用户

1级

2015-11-26 回答

/*不知道你要换号就好了还是需要第一行与第二行等排列有一定不同,所以两个都弄了一下*/

/* 你复制试一下 */

char *p[] = {

"A爱玩大区可以享受到的福利是?\n会员 ",

"B B8级宝石的雕纹效果,基础属性增加了多少?\n2.5",

"C 宝石中需要输入二级密码的时候是?\n摘下宝石时 ",

"D 部落代言人小关真名叫?\n关诗敏",

"E 一切都已随云,\n往事不再重提,\n生命中的记忆留在心底,\n祝愿你快乐!" };

char *p[] = {

"A爱玩大区可以享受到的福利是?\n会员 ",

"B B8级宝石的雕纹效果,基础属性增加了多少?\n\t2.5",

"C 宝石中需要输入二级密码的时候是?\n\t\t摘下宝石时 ",

"D 部落代言人小关真名叫?\n\t\t关诗敏",

"E 一切都已随云,\n\t\t往事不再重提,\n\t\t生命中的记忆留在心底,\n\t\t祝愿你快乐!" };

追问:

第一种结果正是我所希望的,但花括号里面的文本不要合在一行可以么?实际文本长度有几十倍,所以还是按我那样每行分开打,问题来了,“”符号左边和右边不在同一行会报错!

另外可以通过搜索首个字,打印出该行及下一行么?比如我搜索“E”,打印出:

E 一切都已随云,

往事不再重提,

搜索“生”或“生命”打印出:

生命中的记忆留在心底,

祝愿你快乐!"

追答:

/*刚刚有事去了。。好吧。现在这个代码没办法粘贴,因为它会自动对齐,你需要注意一下格式就好了。把“\”之后的下一行到最开始自动对齐的tab给删除掉,使其顶格。不然会影响格式。*/

/*“\”用法是你想要对C语言的源代码进行换行的时候,在要换行的字符的后边加上,之后一个回车,下一行的要写的代码必须顶格。

如:

printf("Hello \

World!");        //会输出Hello World!

printf("Hello \

World!");        //会输出Hello     World!

*/

/*这个赋值粘贴时注意,照图片中对齐格式,特别是顶格*/

char *p[] = {

"A爱玩大区可以享受到的福利是?\n\

会员 ",

"B B8级宝石的雕纹效果,基础属性增加了多少?\n\

2.5",

"C 宝石中需要输入二级密码的时候是?\n\

摘下宝石时 ",

"D 部落代言人小关真名叫?\n\

关诗敏",

"E 一切都已随云,\n\

往事不再重提,\n\

生命中的记忆留在心底,\n\

祝愿你快乐!" };

/*应该像图片中一模一样。*/

e42b21a6c1c09cc806d654c115c529ad.png

42167697a17377ae9e59bff22b35ae03.png

追问:

大哥这正是我需要的方法,下面这个问题可以帮我解答吗?小弟给你加分哦~

还用上面那段文字,可以通过搜索首个字,打印出该行及下一行么?

比如我搜索“E”,打印出:

E 一切都已随云,

往事不再重提,

搜索“生”或“生命”打印出:

生命中的记忆留在心底,

祝愿你快乐!"

追答:

OK。。只会匹配第一个搜到的。。

直接调用了一个库函数。如果字符串太长的话可以使用kmp匹配算法。。具体可以自己搜索。

#include #includeint search_str(char** src,int array_num,char*dest);

int main(void)

{

char str[30];//随意定的大小,如果搜索字符串比较长,那使用动态数组。

int i;

char *p[] = {

"A爱玩大区可以享受到的福利是?\n\

会员 ",

"B B8级宝石的雕纹效果,基础属性增加了多少?\n\

2.5",

"C 宝石中需要输入二级密码的时候是?\n\

摘下宝石时 ",

"D 部落代言人小关真名叫?\n\

关诗敏",

"E 一切都已随云,\n\

往事不再重提,\n\

生命中的记忆留在心底,\n\

祝愿你快乐!" };

search_str(p, sizeof(p) / 4, "不再");

return 0;

}

int search_str(char** src, int array_num, char*dest){

int number = array_num;

char* prt = NULL;

int cnt = 0;

int idex = 0;

for (int i = 0; i

追问:

99d042007433313a19bc959cf70c04f5.png

好多报错呀,另外可以帮我多注释几行么?前面\n\讲得非常清晰,我这么笨的人都轻松理解了

b4456955125944f1abaa669aed4dc80f.png

追答:

//应该编译器的问题,不支持C99。。。好了修复了一下然后改了一点。

#include #includeint search_str(char** src,int array_num,char*dest);

int main(void)

{

char str[30];//随意定的大小,如果搜索字符串比较长,那使用动态数组。

*p[]//自己加,长度超了

printf("请输入匹配字符:\n");

scanf("%s", str);

/*p是搜索源,sizeof(p)/4计算p中有多少个字符串指针,str输入的搜索字符*/

search_str(p, sizeof(p) / 4, str);

return 0;

}

int search_str(char** src, int array_num, char*dest){

int number = array_num;

char* prt = NULL;//指向要打印的字符串

int cnt = 0;//记录打印了的行数

int idex = 0;//打印字符串的下标

int i;

//char* strstr(char* src,char* dest);搜索src中匹配到的第一个dest,并返回其地址。没搜到返回NULL

for (i = 0; i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值