c语言输入一个字符串,如何在指定位置插入一个字符?
也许用链表比较好实现,下面是用数组实现的程序:
#include<stdio.h>
#include<string.h>
main()
{ int i,j,k,m,n;
char a[100],b[100],c;
gets(a);
gets(b);
c=getchar();
m=strlen(a);
for(i=0;i<m;i++)
{if(a[i]==c)<br/> break;<br/> }
if(i>=m)
{printf("出错!\n");<br/> return;<br/> }
n=strlen(b);
k=m;
for(j=m+n;j>i;j--,k--)
a[j]=a[k];
for(j=i,k=0;j<n+i;j++,k++)
a[j]=b[k];
printf("%s\n",a);
}
设计过程:
定义两个字符串s2,s2,字符k
输入两个字符串 s1 、 s2 和 s1 中任意字符 k
先遍历 s1 找到指定字符 k,记录下当前位置
从k字符开始,按s2的长度后移其余的数据
将s2拷贝到k所在的位置
输出s1。
代码如下:
#include <stdio.h>
#include <string.h>
void main(){
char s1[100];
char s2[20];
char k;
int i,pos,len;
printf("input s1: ");scanf("%s", s1 );
printf("input s2: ");scanf("%s", s2 );
getchar();//滤掉回车符
printf("input k: ");scanf("%c", &k );
for( i=0;s1[i];i++ )
if ( s1[i]==k )
break;
}
pos=i; //记录下待插入的位置
len=strlen(s2); //得到s2长度
for( i=strlen(s1);i>=pos;i-- ) //后移字符串
{
s1[i+len]=s1[i];
}
strncpy( &s1[pos], s2, len ); //插入数据
printf("%s\n", s1 ); //输出字符串
}
蜂窝移动网络是什么?它和Wi-Fi有什么区别,是怎么制造出来的?
应邀回答本行业问题。
现在我们可以看到的蜂窝移动网络,其实是指我们现在可以使用的2/3/4/5G网络,公众移动通信系统使用的都是蜂窝移动技术。公众移动通信网络和WiFi的区别就在于一个是广域网的技术,一个是局域网的技术。
蜂窝移动是移动通信技术的基础。
最初的公众无线电通信,使用的都是大区强覆盖的技术。那个时代无线电台的发射功率都非常高,而且需要建设一个很高的天线塔,信号覆盖的区域也比较广,通常可以覆盖几十甚至是上百公里,比较典型的就是我们听的广播电台和早期的使用天线接收的电视节目。
1947年,美国的贝尔实验室提出了蜂窝移动通信的技术设想,在1977年实现了可行性的验证,并且在1978年将这个技术在AMPS系统上得到了验证。AMPS也就是美国的1G技术,我们以前使用的大哥大就是这种技术,AMPS也是全球部署最广泛的1G技术。
蜂窝移动通信提出了小区制的概念,在原来的大区覆盖范围划分为多个小区,每个小区的中心建设一个基站,这样的话每个基站可以覆盖很近的距离,终端可以和最近的小区之间进行通信,降低了终端的发射功率,使得终端小型化得以实现,最终导致了手机的问世。
由于这些小区的信号覆盖类似于六边形,整个网络结构类似于"蜂窝",因此叫做蜂窝通信,蜂窝通信的英文是Cellular。
蜂窝通信是要取代原来的大区制,所以它天然是一个广域网技术。
大区制是覆盖半径很大的通信技术,蜂窝通信取代大区制,要实现原来大区制的技术性能,所以它天然是一个广域网技术。
蜂窝移动通信和TDMA、FDMA、CDMA、OFDMA等复用技术结合,形成了现在我们的移动通信网络。
WiFi是一种局域网技术。
WiFi技术在通信业里属于局域网技术,它属于无线局域网技术。WiFi技术的问世,是为了补充有线局域网,也被认为是固定网络的延伸技术。
WiFi技术经过了多年的演进,从最初的IEEE 802.11b演进到现在的IEEE 802.11ax,IEEE 802.11ax也就是现在很热火的WiFi 6。
蜂窝移动通信网络和WiFi应用于不同的场景。
蜂窝移动通信网络,是需要运营商来负责建设、维护、运营的网络,需要投入很大的资金,蜂窝移动通信网络在保证系统容量的同时,还有比较高的可靠性以及移动性的要求,而这两块是WiFi技术的短板。
5G时代,蜂窝移动通信网络将会和WiFi抢夺部分应用场景。
5G是一个行业应用的时代,大量的行业应用处于室内区域,这也使得移动通信网络开始进入WiFi原来的应用场景。
5G时代会有大量的小基站进行室内部署,会对传统的WiFi技术产生很大的挑战,未来也可能家庭内部不需要部署无线路由器这样的WiFi产品,而由运营商提供的小基站来负责用户在室内的数据业务需求。
总而言之,蜂窝移动通信技术可以说是现在的移动通信技术的基础,任何移动通信网络都属于蜂窝移动网络,现在我们在一些设备上看到的蜂窝移动,其实就是在指我们使用的这些2/3/4/5G网络。
以上个人浅见,欢迎批评指正。喜欢的可以关注我,谢谢!
认同我的看法的请点个赞再走,再次感谢!