Edinburge 发表于 2017-2-21 21:10:18

问题求助

#include<conio.h>
#include<stdio.h>
#include<string.h>
void fun (char *str,char ch)
{while (*str &&*str !=ch) str++;
   if (*str=='\0')
   { str=ch;
   str='\0';
   }
}
main()
{char s,c;

printf("\nPlease enter a string : "); gets(s);
printf("\n Please enter the character to search : ");
c=getchar();
fun(s,c);
printf("\nThe result is %s\n",s);
}
这道程序中while (*str &&*str !=ch) str++;两个字符串相互与是什么意思呀
if (*str=='\0')//这个语句又是什么意思呀?{:10_266:}求指教啊

musilintan 发表于 2017-2-21 21:23:26

1.。。。那个&&意思是两边的表达式必须同时为真才为真,while才可以继续循环。
2.*str意思是取str指针的值,str本身是个字符串,如果要取第一个字符,*str。如果是第二个*(str+1)。也可以str,str。字符串和字符数组是想通的,差不多。

兄弟,基础部分要多看书滴。。。。{:10_247:}

0mrli0 发表于 2017-2-21 21:35:52

楼上说的很清楚,尤其是最后一句{:10_256:}

caokaifa 发表于 2017-2-22 18:42:19

while (*str &&*str !=ch) str++;判断输入字符串第一字符是否为空与第一个字符是否与输入字符相等,当输入字符串第一个字符不为空,同时与输入字符不相等时,while语句执行,str++,判断第二个字符

Edinburge 发表于 2017-2-23 18:06:01

musilintan 发表于 2017-2-21 21:23
1.。。。那个&&意思是两边的表达式必须同时为真才为真,while才可以继续循环。
2.*str意思是取str指针的值 ...

大神,这里的while (*str &&*str !=ch) str++;str是否同时str++呢?
str=ch;
   str='\0';
这里的str【0】和str【1】不应该是这组字符串的第一位和第二位吗?比如:输入abcd,查找h
最后输出结果为abcdh,可是str不应该是a吗?str才是h吗?
想学些基础知识,但是不知道看什么书好呀?大神有没有什么好推荐的呢?
在下不胜感激!

musilintan 发表于 2017-2-23 21:13:17

Edinburge 发表于 2017-2-23 18:06
大神,这里的while (*str &&*str !=ch) str++;str是否同时str++呢?
str=ch;
   str='\0';


看小甲鱼的视频用的什么书就看什么书就行,基础书都差不多,主要讲的就是语法。书看完这些问题自然而然就一目了然了。
页: [1]
查看完整版本: 问题求助