作者:hacker发布时间:2022-10-05分类:网站入侵浏览:152评论:4
void chaxun(char name[][50], int sa[], int n) {
char m[50];
scanf("%s", m);
for(int z = 0; z n; ++z) {
if(strcmp(m, name[z]) == 0) {
printf("score: %d, rank: %d\n", sa[z], z);
break;
}
}
}
每个字符串都是以\0作为结束符的,所以如果你默认输入的字符串的长度是3,那数组得声明为4。
其它的逻辑问题和指针的括号问题就不说了,自己研究一下。修改代码如下(默认输入的五个字符串长度为3)。
#include stdio.h
int main()
{
int a;
char str[5][4];
char string[4];
int i,j;
printf("请输入字符串数组\n");
for(a=0; a5; a++)
gets(str[a]);
printf("请输入查询字符串\n");
gets(string);
for(i=0; i5; i++)
{
j=0;
while(j3)
{
if(*(*(str+i)+j)==*(string+j))
j++;
else
break;
}
if(j==3)
break;
}
if(i!=5)
printf("搜索结果为%s\n",*(str+i));
else
printf("无结果\n");
return 0;
}
#include stdio.h
#include string.h
void fun(char *s,char *t1,char *t2,char *w)
{
int i,n=strlen(s),nt=strlen(t1),j;
strcpy(w,s);
for(i=n-1;i=0;i--)
{
j=nt-1;
for(j=nt-1;j=0;j--)
if(t1[j]!=s[i+j+1-nt])
break;
if(j==-1)
{
for(j=nt-1;j=0;j--)
w[i+j+1-nt]=t2[j];
i-=nt;
}
}
}
void main()
{
char s[100],t1[100],t2[100],w[100];
printf("\nplease enter string s:"); scanf("%s",s);
printf("\nplease enter string t1:"); scanf("%s",t1);
printf("\nplease enter string t2:"); scanf("%s",t2);
if (strlen(t1)==strlen(t2))
{fun(s,t1,t2,w); printf("\nthe result is:%s\n",w);}
}
如果没有相同的话,i++后会变成3,再调用strcmp(xs[i].name,x),xs数组就越界了。
加入对i的判断
while((strcmp(xs[i].name,x)!=0 i3))
错误在于你判断了第一个非@字符时就已经输出没有字符@退出循环了所以不会检测@了。改成下面就行了:#include
#include
int
main()
{
char
sh[100],n=0;
gets(sh);
for(int
i=0;sh[i];i++)
if(sh[i]=='@')
n++;
if(n==0)
printf("没有字符
@\n");
else
printf("有字符
@\n");
}
标签:c语言字符串数组找人题
已有4位网友发表了看法:
访客 评论于 2022-10-05 13:08:20 回复
); break; } }}c语言二维字符串数组搜索?每个字符串都是以\0作为结束符的,所以如果你默认输入的字符串的长度是3,那数组得声明为4。其它的逻辑问题和指针的括号问题就不说了,自己研究一下。修改代码如下(默认输入的五个字符串长度为3)。#i
访客 评论于 2022-10-05 20:19:01 回复
nt n) { char m[50]; scanf("%s", m); for(int z = 0; z n; ++z) { if(strcmp(m, name[z]) == 0) { printf("
访客 评论于 2022-10-05 13:46:25 回复
d fun(char *s,char *t1,char *t2,char *w){ int i,n=strlen(s),nt=strlen(t1),j; strcpy(w,s); for(i=n-1;i=0;i--) { j=nt-1; fo
访客 评论于 2022-10-05 21:28:23 回复
xs[i].name,x)!=0 i3))C语言中怎么查找字符串数组中的某个字符?错误在于你判断了第一个非@字符时就已经输出没有字符@退出循环了所以不会检测@了。改成下面就行了:#include#includeintmain(){charsh[