任何人都可以向我解释这个程序,我真的需要很快学会这个。谢谢。
#include<iostream.h>
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
#include<string.h>
int main()
{
char str[100],*p,ch;
cout<<"Enter A String = ";
gets(str);
cout<<"Enter A Character = ";
ch=getche();
p=(char *)memchr(str,ch,strlen(str));
if(p)
cout<<"\n\n"<<ch<<" is at position = "<<p-str;
else
cout<<"\n\n"<<ch<<" Not Found";
getch();
return 0;
}
答案 0 :(得分:1)
非常简短......所有#include都意味着您可以使用其他地方定义的资源,例如: &#34; cout&#34;是标准流的名称,它在C(或C ++)库中定义,并由头文件iostream.h提供给您的程序。您可以将其视为程序与某些外部库或外部代码之间的接口。
int main(){
}
这是程序的入口点 - 在这种情况下,它将是DOS或控制台程序。它是在整个程序成功编译,链接和执行后在代码中调用(执行)的第一个函数的标准名称。换句话说,将执行main函数括号内的每行代码(或命令),以便您编写它...
char [100] ...是包含100个char(CHARacter)类型项的字段的定义。换句话说,它可以是最多包含100个字符的文本字符串。该命令后该字段为空(不包含字符)。只需在内存中保留100个字符的位置。
* p ...是指向char类型占用的内存位置的指针。它与&#34; char&#34;关于线的开头的话。在这种情况下,它只是声明,它还没有指向任何地方。此外,它可以指向char类型字段的第一个char。
ch ...这是char类型变量的声明(不是定义 - 它还没有包含任何值!)(同样,它与&#34; char&#34;在线开始)。
cout&lt;&lt;&#34;输入一个字符串=&#34 ;; ...这更复杂,但简而言之,cout是标准输出流,它将写入文本字符串follow&lt;&lt;到标准输出(如果没有在其他地方重新定向,通常到屏幕)。
gets(str); ...此命令将读取您编写的所有字符,并在按Enter键后将它们保存到str字段中。请注意,您的str字段(在主函数的第一行定义)仅具有100个项目的容量,因此您的文本字符串不能长于该项,或者它会抛出一些异常或丢弃您的程序更好的情况...... 此外,您的文本字符串只能包含99个字符,因为每个文本字符串必须以&#39; \ 0&#39;第100个字符的字符...
cout&lt;&lt;&#34;输入一个字符=&#34 ;; ...再次,这将写入文字&#34;输入一个字符=&#34;在标准输出流上。
ch = getche(); ... getche函数将读取您输入的字符,它将保存到&#34; ch&#34;变量...所以现在你的ch变量将包含输入的字符。
p =(char )memchr(str,ch,strlen(str)); ...如果你还记得,p是指向某个内存位置的指针。 &#34;&了memchr#34;是一个函数,它将搜索由第一个字符(&#34; str&#34;在你的情况下)给出的字符串中的第二个参数(在这种情况下为&#34; ch&#34;)中给出的字符。第三个参数(strlen(str))定义搜索到的字符串中的字符数。在这种情况下,strlen(str)函数返回表示&#34; str&#34;的长度的数字。字符串,因此memchr函数将搜索您输入的字符(保存在&#34; ch&#34;变量中)在整个字符串str(您输入并由gets(str)读取的字符串)函数中...
因为memchr函数返回指向void类型的指针,你需要保存存储字符的内存位置地址&#34; ch&#34;在&#34; str&#34; string(&#34; str&#34; field)...这是&#34; char&#34;的内存位置。类型,你需要将void 类型转换(转换)为char *类型 - (p *是指向char类型的指针 - 请参阅main函数的第一行)。这是由(char *)文本提供的。
if-else语句只是条件执行......您可以将其视为自然语言。如果某些事情是真的,那么执行以下命令ELSE执行其他操作......所以,在你的情况下,如果p指针不为null(memchr函数找到了字符&#34; ch&#34;在&#34; str&#34; string)那么
COUT&LT;&LT;&#34; \ n \ n&#34;&LT;
... ELSE(如果第一个条件不为真=&gt; p指针为空)
COUT&LT;&LT;&#34; \ n \ n&#34;&LT;
getch(); ...如果您在Windows操作系统下的命令提示符下运行此程序,该控制台窗口将在程序完成后关闭。此功能等待键盘输入的字符,即按下键后窗口不会关闭,这样您就可以查看程序的输出。
return 0; ...此命令将确保main函数(具有int(整数)类型返回值)将0值返回给主机操作系统。通常,0值表示&#34;每个都是O.K.,程序执行成功。任何其他值通常意味着在执行程序期间出现了一些错误......
希望这些计划能够帮助你......但正如我在开头所提到的那样 - 这是非常简化的解释。如果您对C / C ++编程感兴趣,请参阅Web上的许多教程或与该主题相关的许多书籍: - )
祝你好运:-)