C语言编写程序 C语言编写程序

作者&投稿:赫俘 (若有异议请与网页底部的电邮联系)

程序功能:录入N个字符串(动态内存申请,内存范围内不限长度个和字符个数)

输入一个字符串,查找是否有相同,有输出1,没有输出0。(先比较长度再比较内容)

字符串可以包含空格,代码我都详细备注了。

#include <stdio.h>
#include <malloc.h>
#include <conio.h>
#include<string.h>
typedef struct strList
{
    char *s;              //一行字符串首地址
    int clo;              //列数
    struct strList *next; //链表指针
}STRL;
STRL *inputStr(STRL *strlHead,STRL *strlTail,int ff);
void prSTRL(STRL *strlHead);
int findSTRL(STRL *strlHead);
void meError(void *p);
int main()
{
    STRL *strlHead=(STRL *)malloc(sizeof(STRL)),*strlTail=NULL;
    meError(strlHead);
    strlHead->next=NULL;
    strlTail=inputStr(strlHead,strlTail,0);
    printf("录入的字符串信息为:
");
    prSTRL(strlHead);
    while(1)
        printf("查找结果:%d

",findSTRL(strlHead));
    return 0;
}
void prSTRL(STRL *strlHead)//打印链表字符串
{
    while(strlHead->next!=NULL)
    {
        printf("%s
",strlHead->next->s);
        strlHead=strlHead->next;
    }
    printf("
");
}
int findSTRL(STRL *strlHead)//查找字符串,先比较长度,再比较内容,找到返回1,未找到返回0
{
    int flag=0;
    STRL sFindHead,*sFindTail=NULL;
    sFindHead.s=NULL;
    sFindHead.next=NULL;
    sFindTail=inputStr(&sFindHead,sFindTail,1);
    if(!sFindTail)
        return 0;
    while(strlHead->next!=NULL)
    {
        if(strlHead->next->clo==sFindTail->clo && !strcmp(strlHead->next->s,sFindTail->s))
        {
            flag=1;
            break;
        }
        strlHead=strlHead->next;
    }
    free(sFindTail->s);
    free(sFindTail);
    return flag;
}

STRL *inputStr(STRL *strlHead,STRL *strlTail,int ff)
//ff!=1录入多行任意长度字符串,连续回车结束录入,返回尾节点
//ff==1录入单行任意长度字符串,返回尾节点
{
    char *str=NULL,*temp=NULL,c;
    int len,add,cnt,flag=1;//len:字符串预设长度(包含结束符号);add:长度增长值,cnt:实际录入的字符个数;flag=0结束录入
    STRL *strlNew=NULL;
    if(ff!=1)
        printf("输入多行字符串(每输入一行回车确认,不输入直接回车结束录入):
");
    else
        printf("输入要查找的字符串:
");
    while(flag)//换行
    {
        cnt=0;
        len=10;
        add=10;
        str=(char *)malloc(sizeof(char)*len);
        meError(str);
        while(1)//输入一行
        {
            temp=NULL;
            c=getch();
            if(c=='' && cnt>0)
            {
                strlNew=(STRL *)malloc(sizeof(STRL));
                meError(strlNew);
                strlNew->s=str;
                strlNew->clo=cnt;
                strlNew->next=NULL;
                if(ff==1)//单行录入模式
                    flag=0;
                //保存录入并在多行模式下开始录入新的一行
                if(!strlHead->next)
                    strlHead->next=strlNew;
                else
                    strlTail->next=strlNew;
                strlTail=strlNew;
                printf("
");
                break;
            }
            if(c=='' && cnt==0)//结束录入
            {
                if(ff==1)
                    return NULL;
                flag=0;
                free(str);
                break;
            }
            if(c!='' && cnt>=len-1)//一行字符串内存已满,扩充内存
            {
                len+=add;
                temp=(char *)realloc(str,sizeof(char)*len);
                meError(temp);
                str=temp;
            }
            str[cnt++]=c;
            str[cnt]=0;
            printf("%c",c);
        }

    }
    return strlTail;
}
void meError(void *p)//内存申请失败
{
    if(p==NULL)
    {
        printf("异常:内存申请失败!回车结束程序!
");
        while(getch()!='');
        exit(0);
    }
}


#define Num 10
#define Len 21

#include<stdio.h>
#include<string.h>

int main()
{
int i,n;
char strs[Num][Len],str[Len];

printf("请输入字符串的个数:");
scanf("%d",&n);
getchar();
printf("请输入%d个字符串,每行一个:\n",n);
for(i=0;i<n;i++)
{
gets(strs[i]);
}
printf("请输入要查找的字符串:");
gets(str);
for(i=0;i<n;i++)
{
if(!strcmp(strs[i],str))
{
puts("1");
break;
}
}
if(i>=n)
puts("0");
return 0;
}

#include "stdio.h"
#include <string.h>
int main(int argc,char *argv[]){
char s[10][21],t[21];
int N,i;
printf("How many string are you want to enter(No more than 10)?
");
if(scanf("%d",&N)!=1 || N<1 || N>10){
printf("Input overrun, exit...
");
return 0;
}
for(i=0;i<N;scanf("%20s",s[i++]));
printf("To enter a search string...
");
scanf("%20s",t);
for(i=0;i<N;i++)
if(strcmp(t,s[i])==0)
break;
printf(i<N ? "1
" : "0
");
return 0;
}

运行样例:



怎么编写C语言程序,如:Helloworld的?~

代码如下:
#include
int main(void)
{
printf("Hello, world!");
return 0;
}
一、首先,打开我们的Visual C++ 6.0软件,我使用的为中文版,软件主界面如下图所示:

1、然后点击上图工具栏中的文件,里面有个新建菜单,然后我们可以设置一下我们的工作空间,如下图所示:

2、然后在一步步默认点击确定,完成即可,此时工作空间就建立起来了。
二、接下来,再点击工具栏下的文件,里面有个新建菜单,点击它,出现下图的对话框:

1、点击确定即可,创建出一个helloworld.c的小程序,然后我们就可以编写我们的Hello World小程序了。此时就需要我们的VC++ 6.0来编译此程序,编译无错误才运行此程序,编译按钮和运行按钮如下图的红色箭头处:

2、或者可以点击组建工具栏下的编译菜单项,然后再点击执行菜单项,也有快捷键,按Ctrl+F7编译此程序,按Ctrl+F5运行此程序。编译无错误的话,点击运行按钮后如下图所示: 

扩展资料:
C语言的基本构成:
1、数据类型。C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2、常量与变量。常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3、数组。如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。
4、指针。
(1)、如果一个变量声明时在前面使用 * 号,表明这是个指针型变量。换句话说,该变量存储一个地址,而 *(此处特指单目运算符 * ,下同。C语言中另有 双目运算符 *) 则是取内容操作符,意思是取这个内存地址里存储的内容。指针是 C 语言区别于其他同时代高级语言的主要特征之一
(2)、指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到一个以上的返回值,不同于return(z)这样的仅能得到一个返回值。
(3)指针是一把双刃剑,许多操作可以通过指针自然的表达,但是不正确的或者过分的使用指针又会给程序带来大量潜在的错误。
5、字符串。C语言的字符串其实就是以'\0'字符结尾的char型数组,使用字符型并不需要引用库,但是使用字符串就需要C标准库里面的一些用于对字符串进行操作的函数。它们不同于字符数组。使用这些函数需要引用头文件。
6、文件输入/输出在C语言中,输入和输出是经由标准库中的一组函数来实现的。在ANSI C中,这些函数被定义在头文件;中。
参考资料:百度百科:C语言

代码如下:
#include
int main(void)
{
printf("Hello, world!");
return 0;
}
一、首先,打开我们的Visual C++ 6.0软件,我使用的为中文版,软件主界面如下图所示:

1、然后点击上图工具栏中的文件,里面有个新建菜单,然后我们可以设置一下我们的工作空间,如下图所示:

2、然后在一步步默认点击确定,完成即可,此时工作空间就建立起来了。
二、接下来,再点击工具栏下的文件,里面有个新建菜单,点击它,出现下图的对话框:

1、点击确定即可,创建出一个helloworld.c的小程序,然后我们就可以编写我们的Hello World小程序了。此时就需要我们的VC++ 6.0来编译此程序,编译无错误才运行此程序,编译按钮和运行按钮如下图的红色箭头处:

2、或者可以点击组建工具栏下的编译菜单项,然后再点击执行菜单项,也有快捷键,按Ctrl+F7编译此程序,按Ctrl+F5运行此程序。编译无错误的话,点击运行按钮后如下图所示: 

扩展资料:
C语言的基本构成:
1、数据类型。C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2、常量与变量。常量其值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,请注意第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3、数组。如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组。它们以ASCII的NULL作为数组的结束。要特别注意的是,方括内的索引值是从0算起的。

用C语言编写一个简单程序,有哪些步骤,可以举一个例子详细讲解下吗?_百 ...
答:include <stdio.h>//首先要引入c语言的标准输入输出库文件,因为这个文件里有已经定义好的可以使用的函数 //接下来需要写一个main函数,这也是c语言程序里必不可少的一个函数,叫主函数,他是整个程序的入口函数,程序所有的功能实现都要在这个函数中体现。但是这个函数有且仅有一个 int main(){ /...

怎么用c语言编写一个小程序?
答:1、首先打开DEV C++软件,点击“新建源代码”,在编辑页面输入以下代码。2、因为题目要求我们先输入一个整数,所以在定义变量时,就应该将其定义为整数型,注意,在输入,输出函数中,整数型对应的是“%d”。3、接下来就要对输入的整数进行判断,在C语言中,if是判断语句,所以用它来对整数进行判断。if...

怎么编写C语言程序,如:Helloworld的?
答:1、点击确定即可,创建出一个helloworld.c的小程序,然后我们就可以编写我们的Hello World小程序了。此时就需要我们的VC++ 6.0来编译此程序,编译无错误才运行此程序,编译按钮和运行按钮如下图的红色箭头处:2、或者可以点击组建工具栏下的编译菜单项,然后再点击执行菜单项,也有快捷键,按Ctrl+F7编译...

c语言在哪里编写程序
答:c语言在Microsoft Visual Studio软件环境中编写程序。Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,通常c语言都是在Microsoft Visual Studio环境中编写。在Microsoft Visual Studio中编写程序做法:1、...

应用c语言编写程序
答:c语言编译程序属于系统软件。编译程序(Compiler,compilingprogram)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。这里的编译程序是一种动作,是根据编译原理技术,由高级程序设计语言编译器翻译成机器语言二进制代码行为,因此它是系统软件。

c语言如何编写界面程序
答:一、C语言中要做图形界面,首先需要设置为图形模式,确定显卡类型,对屏幕进行初始化等等。二、相关的函数如下:1. detectgraph() 显示卡检测函数 2. initgraph() 图形初始化函数 3. getdrivername() 获取图形驱动程序名的指针 4. getgraphmode() 获取图形模式函数 5. getmoderange()获取模式值范围...

用C语言编写一个简单程序,有哪些步骤,可以举一个例子详细讲解下吗?_百 ...
答:include<stdio> //这个是头文件 也是 C语言里面最常用的头文件之一 int main()//这个是主函数 也就是程序的入口 你写的程序就是从这里开始的 { //这个 { }表示里面的范围 是必须的 跟main 主函数是不可分的 int a=2; //这里表示有一个 int型的数据a(int型就是整数...

如何用C语言编写一个简单的程序!
答:.c”为后缀结尾 4、进入编辑页面在,页面编辑源代码就可以 includestdio.h void main(){ printf(hello world!n);} 然后选择保存,打印,输出运行。5、输出的效果就是这样了,一个简单的c语言程序就写好了 特别提示 所有的输入都要在英文半角的情况下输入,不然程序会不能识别,会报错。

C语言编写程序
答:程序功能:录入N个字符串(动态内存申请,内存范围内不限长度个和字符个数)输入一个字符串,查找是否有相同,有输出1,没有输出0。(先比较长度再比较内容)字符串可以包含空格,代码我都详细备注了。include <stdio.h>#include <malloc.h>#include <conio.h>#include<string.h>typedef struct str...

C语言编写一个大小写字母转换的程序
答:include <stdio.h> define DAXIE(x) (x>='A' && x<='Z') //判断是大写字符。define XIAOXIE(x) (x>='a' && x<='z') //判断是小写字符。define ZHUANXIAOXIE(x) (x-'A'+'a')//转为小写 define ZHUANDAXIE(X) (x-'a'+'A')//转为大写 int main(){ char str[100];in...