c语言 字符串的交叉输入

作者&投稿:阿黛 (若有异议请与网页底部的电邮联系)
输入两个字符串,要求将这两个字符串交叉连接,c语言~

#include
#include
#include
int main(void)
{
char string1[20],string2[20],string3[40];
int len1,len2,i = 0,j=0;
printf("输入第一个字符串!:");
gets(string1);
printf("输入第二个字符串!:");
gets(string2);
len1 = strlen(string1);
len2 = strlen(string2);
string1[len1-1] = ‘\0’;
string1[len2-1] = ‘\0’;
while(string1[i]!='\0'&&string2[i]!='\0')
{
string3[j++] = string1[i];
string3[j++] = string2[i];
i++;
}
if(string1[i] == '\0')
{
while(string2[i]!='\0')
{
string3[j++] = string2[i];
i++;
}
}
if(string2[i] == '\0')
{
while(string1[i]!='\0')
{
string3[j++] = string1[i];
i++;
}
}
string3[i] = '\0';
printf("%s
",string3);
return 0;
}

/*书上说的不一定对啊。我的编译器就可以用多种方式输入:
10A 20B
10A 20B
10A 20 B
10 A 20 B
以上的输入格式,我的编译器都能接受。
你可以用以下例子试验下,看你的编译器能接受什么格式。*/
#include
#include

int main(int argc,char *argv[])
{
int a,b;
char c1,c2;
scanf("%d %c %d %c",&a,&c1,&b,&c2);
printf("%d %c %d %c
",a,c1,b,c2);
system("PAUSE");
return 0;
}

这里用unsigned,而不是int,是因为数组的下标是非负数,用unsigned定义下标,可以使下标的范围更大。把负数赋给下标是合法的,但是赋值的结果是该负数对该类型的取值个数求模后的值,比如把-1赋给8位的unsigned char,那么结果就是255,因为255是-1对256求模后的值,这样就保证了我们访问的下标都是非负数。
只有在数组非常大的时候用unsigned定义下标才有上面说的实际意义。因为int型数据在机器中是32位,所能表示的数已经很大,足够我们使用。在你的程序中定义成int也是完全可以的,由于strlen()函数返回的unsigned型,程序会警告,你只需要转换一下类型就可以。
unsigned类型数据的输出格式字符是u,如printf("%u",Count);

unsigned、unsigned int、int这里是都可以的
int型默认是带符号的 取值范围是-32768~32767 而加了unsigned后就变为无符号了,取值范围变为0~65535

unsigned后面不加什么的话 默认是int型


安平县13835947939: C语言,将两个字符串中的单词交错拼接在一起,比如 welcome to Beijing 和 he -
隆咏复方: 你得明白如下两点:首先,C语言中字符串是常量表达式,程序无法更改;其次,可以使用char *strncat(char *restrict s1, const char *restrict s2, size_t n);将两个字符数组拼接成一个数组.最后,你要实现字符串中单词交错拼接,那只能根据具体情况编写功能函数来实现了.

安平县13835947939: c语言当交叉输入数值数据和字符数据时应当注意些什么 -
隆咏复方: /*书上说的不一定对啊.我的编译器就可以用多种方式输入:10A 20B10A 20B10A 20 B10 A 20 B 以上的输入格式,我的编译器都能接受.你可以用以下例子试验下,看你的编译器能接受什么格式.*/#include<stdio.h>#include<stdlib.h> int main(int argc,char *argv[]) { int a,b; char c1,c2; scanf("%d %c %d %c",&a,&c1,&b,&c2); printf("%d %c %d %c\n",a,c1,b,c2);system("PAUSE"); return 0; }

安平县13835947939: 输入两个字符串,要求将这两个字符串交叉连接. -
隆咏复方: #include#include#include#include int main() { char str1[20],str2[20],str3[40]; int len1,len2,i = 0,j=0,k=0; printf("输入第一个字符串!:"); scanf("%s",str1); printf("输入第二个字符串!:"); scanf("%s",str2); while(1) { if(str1[j]=='\0'||...

安平县13835947939: C语言怎么实现字符串的任意输入 -
隆咏复方: 使用gets函数即可实现输入任意字符串. 1、gets函数: 原型:char * gets(char * buffer); 功能:从stdin流中读取字符串,直至读到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中.换行符不作为读取串的内容,读取...

安平县13835947939: C语言上中怎么样直接输入输出一个字符串 -
隆咏复方: C语言中字符串的输入和输出主要有两种方式: 输入使用:scanf("%s",a);对应的输出使用:printf("%s\n",a); 输入使用:gets(b);对应的输出使用:puts(b);字符串或串(String)是由数字、字母、下划线组成的一串字符.一般记为 s=...

安平县13835947939: c语言逆序输入字符串 -
隆咏复方: while(getchar()!='\n'&&i<=100){ //吸收第一个 ch[i]=getchar(); //读取第二个 i++; } 错在这里,你whlie判断数组是否输入结束的时候已经读入了一个字符, 这就意味着每输入两个字符你只能获得一个,其中一个被while 判断中的getchar吸收掉了

安平县13835947939: 用scanf交叉输入字符与数据有什么原则?是不是字符前绝对不能有空格,数据之间必须加空格????? -
隆咏复方: 从键盘输入的C语言语句是最常用的语句scanf函数,函数原型为int scanf函数(字符*格式的args,...);从标准输入设备,根据所述格式字符串 函数通过格式的格式,将输入数据传送到指定的args点单元指向.C ++,您可以通过两种方式使用scanf函数语句和CIN(标准输入流). CIN是标准输入流从键盘流到数据流的存储器,以获得来自输入装置的数据,以在键盘与>>操作者在输入流CIN.

安平县13835947939: c语言怎么输入多个字符串 -
隆咏复方: char str1[20],str2[20]; scanf("%s%s",str1,str2); 这样就可以实现多个字符串的输入,注意几点: 1. 输入的每一个字符串长度应小于定义时的字符数组长度. 2. 输入字符串时,字符串与字符串之间用空格符或者回车换行符隔开.

安平县13835947939: 在C语言中怎么输入一个字符串 -
隆咏复方: 在c语言中存储一个字符串,一般有两种方法,一种是字符指针,一种是使用字符数组.比如: const char *str = "hello"; //使用字符串指针 const char str[] = "hello"; //使用字符数组 如果保存的字符串,需要修改.一般使用字符数组.比如: char path[256] = "c:\\windows\\"; strcat(path, "system32");

安平县13835947939: c语言 输入字符串 -
隆咏复方: scanf("%s",str); //运行后按回车也是一个字符,就给了c printf("input c,ch:\n"); scanf("%c%c",&c,&ch); //改成这样就好scanf("%c%c%c",&c,&c,&ch);

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网