【发布时间】:2015-09-26 15:41:47
【问题描述】:
我正在从 Brian W. Kernighan(作者)、Dennis M. Ritchie(作者)在练习 2-5 的书中学习 c 语言:
编写函数any(s1,s2),它返回字符串s1中的第一个位置 其中出现字符串 s2 中的任何字符,如果 s1 不包含 s2 中的字符,则为 -1。 (标准库函数 strpbrk 做同样的工作,但返回一个指向 位置。)
我有这个问题输入的最后一个元素是'@'这是我的代码:
#include <stdio.h>
void chloc(char s1[], char s2[]);
main(void)
{
int c, i, j;
char s1[20], s2[20];
i = j = 0;
while((c = getchar()) != '\n')
s1[i++] = c;
while((c = getchar()) != '\n')
s2[j++] = c;
chloc(s1, s2);
return 0;
}
void chloc(char s1[], char s2[]){
int i, j, b, k;
i = 0;
j = 0;
for( i = 0; s1[i] != '\0'; i++)
for(j = 0; s2[j] != '\0'; j++)
if(s1[i] == s2[j]){
printf("First uccurance of %d is %d\n", s1[i], i);
s2[j] = '#';
}
}
【问题讨论】:
-
您的问题是什么?你想要什么,这段代码能给你什么?
-
在这个输入 'beqabeqa' 上,是
-
char s1[20], s2[20];-->char s1[20] = {0}, s2[20] ={0}; -
不知道你在说什么。尝试使用整个句子。
-
无论你的 chloc 在做什么,它都不是应该的......