首页 > 编程知识 正文

c语言怎么用scanf输入字符串,c语言输入一个字符串

时间:2023-05-04 23:00:27 阅读:172302 作者:2755

这次是个人练习,如果有错误或改善的地方请提出来。

要求:读取一个字符串,字符串可能含有空格,将字符串逆转,原来的字符串与逆转后字符串相同,输出0,原字符串小于逆转后字符串输出-1,大于逆转后字符串输出1。例如输入 hello,逆转后的字符串为 olleh,因为hello 小于 olleh,所以输出-1。

拓展知识:str系列字符串操作函数

str系列的字符串操作函数主要有strlen、strcpy、strcmp、strcat等。 其中strlen函数用于统计字符串的长度,strcpy函数用于将字符串分配给字符串数组,strcmp函数用于比较两个字符串的大小,strcat函数用于连接两个字符串。 请注意,使用这些函数需要引用string.h。 这些的使用方法如下

# include stdio.h # include string.hint main () {char c[20]='helloworld '; printf ('数组c中字符串的长度=%dn ',strlen(c ); char d[20]; strcpy(d,' study ' ); //复制//char*strcopy(char*to,const char *from ); 有const限定意味着可以包含字符串常量puts(d )。 从strcmp来看,比较两个字符串的是比较对象的字符位置的ascii代码值intret=strcmp('how ',' hello ' ); printf (比较字符how和字符hello的结果=%dn ',ret ); //how大于hello时输出大于0的值,how小于hello时输出小于0printf的值()比较两个字符串的结果=%dn )、strcmp )、) hello )、) hello )//两个字符串的值相等时,输出的值为0//strcat,由两个字符串连接而成,在目标数组中存储连接的字符串strcat(c,d )。 //将序列c和序列d连接在一起形成Puts(C ); //输出连接的字符串return 0

因此,可以使用str系列字符串操作函数编写此问题的代码。

代码如下所示。 # include stdio.h # include string.hint main ({ chara [ 20 ]; char b[20]; int len; //intstrcmp(constchar*a,const char* b ); gets(a ); len=Strlen(a ); //读取数组a的长度for (inti=0; i len; I ) b(I )=a(Len-I-1 ); //a将存储在数组下标中的数据反转后的b数组下标(} b[len]=' ' ); 在//b数组中,在数据结束后追加终端代码if (strcmp (a,b )0)//判断是否大于原字符串逆转后的字符串(printf ) '1) }elseif(strcmp(a,b ) ) }else{printf('0); //原始字符串和逆转后的字符串相同}}执行结果:

输入“hello”后,输出结果为“-1”。

输入hello-1「CBA”时,输出结果应为“1”:

输入CBA1「ABA”时,输出结果必须为“0”。

aba0

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。