首先要明白一点儿,C语言中字符串也是按一个一个字符存在""字符数组""中的哦! 用个数组作为队列来存放
例如:int a[100] 将这个数组用在你要接收字符的函数里,将接收的字符按i递增存放在a[]里
接收时用个for(i=0;i++;i=100)
{
a[i]=接收字符
}
这样a[0]里装的是第一个接收字符,a[1]是第二个,依次类推,字符串就被接收到a[]里了
输出时同理再用个for循环就可以了,例如
for(i=0;i++;i=100)
printf a[i]
当然要返回的字符串若是要用在其它的函数里也可以再定义个变量例如temp
可以temp=a[i]反正整个字符串都被保存在了数组a[]里,想怎么用可以了!
以上只是算法,具体代码还得根据自己需要多动手训练哦!
/*
串a:
abcdefghijklmnopqrstuvwxyz
串b:
串c:
Press any key to continue
*/
#include?stdio.h
typedef?struct?{
char?ch[MAXLEN];
int?len;
}SString;
void?StrInsert(SString?*s,int?pos,SString?t)?{
int?i;
if(pos?0?)?pos?=?0;
if(pos?s-len?-?1)?pos?=?s-len;
if(s-len?+?t.len?=?MAXLEN)?{?//?长度适中
for(i?=?s-len?+?t.len?-?1;i?pos;i--)
s-ch[i]?=?s-ch[i?-?t.len];
for(i?=?0;i?t.len;i++)?s-ch[i?+?pos]?=?t.ch[i];
s-len?+=?t.len;
else?if(pos?+?t.len?MAXLEN)?{?//?长度超限1,从pos后不再有s的内容
for(i?=?pos;i?MAXLEN;?++i)
s-ch[i]?=?t.ch[i?-?pos];
s-len?=?MAXLEN;
for(i?=?MAXLEN?-?1;?i?=?pos?+?t.len;?--i)
for(i?=?0;?i?t.len;?++i)
s-ch[i?+?pos]?=?t.ch[i];
//?在s中从pos位置开始删除len个字符
int?StrDelete(SString?*s,int?pos,int?len)?{
if(pos?0?||?pos?s-len)?return?0;
if(pos?+?len?s-len)?{?//?删除s的中间部分
for(i?=?pos;i?pos?+?len;i++)
s-ch[i]?=?s-ch[i?+?len];
s-len?-=?len;
else?{?//?len太大
s-len?=?pos;
return?1;
SString?StrCopy(SString?*s,SString?t)?{
for(i?=?0;i?t.len;i++)?s-ch[i]?=?t.ch[i];
s-len?=?t.len;
return?*s;
int?StrEmpty(SString?s)?{
if(s.len?==?0)?return?1;
return?0;
int?SteCompare(SString?s,SString?t)?{
for(i?=?0;i?s.len?i?t.len;i++)
if(s.ch[i]?!=?t.ch[i])?return?(s.ch[i]?-?t.ch[i]);
return?(s.len?-?t.len);
int?SteLength(SString?s)?{
return?s.len;
void?StrClear(SString?s)?{
s.len?=?0;
void?StrShow(const?SString?s)?{
for(i?=?0;?i?s.len;?++i)
printf("%c",s.ch[i]);
printf("\n");
int?main()?{
StrCopy(strc,stra);
printf("串a:\n");
StrShow(stra);
printf("串b:\n");
StrShow(strb);
printf("串c:\n");
StrShow(strc);
主函数就是程序运行时,所在的函数.
一般习惯使用 main 作为主函数名.
main(),在c语言中称之为"主函数",一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略.
具体形式如下:
main()
{ ? }
被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容.
在{ ?}里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志.
扩展资料:
函数是一组一起执行一个任务的语句.每个 C 程序都至少有一个函数,即主函数?main()?,所有简单的程序都可以定义其他额外的函数.
您可以把代码划分到不同的函数中.如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的.
函数声明告诉编译器函数的名称、返回类型和参数.函数定义提供了函数的实际主体.
C 标准库提供了大量的程序可以调用的内置函数.例如,函数?strcat()?用来连接两个字符串,函数?memcpy()?用来复制内存到另一个位置.
函数还有很多叫法,比如方法、子例程或程序,等等.
#includestdio.h
char *custom_cpy(char *to,char *from);
int main(int argc,char *argv[]){
char *from = "i like c langanger";
char *ptr = custom_cpy(to,from);
printf("%s,%s\n",ptr,to);
return 0;
char *custom_cpy(char *to,char *from){
if(to == NULL || from == NULL){
return NULL;
}?
char *p = to;
for(;*from!='\0';from++,to++){
*to = *from;
*to = '\0';//拷贝完毕之后一定要加一个结束符号
return p;
字符串相关函数应用:
例:concat('11','aa')='11aa';
参考资料:
百度百科-字符串
C语言程序主函数只能有1个.C程序中main()称之为主函数,是所有程序运行的入口.程序执行总是从main函数开始,如果有有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序.在执行程序时,由系统调用main函数.
主函数的两个形参形式中的形参,允许从执行环境中传递任意的多字节字符串,各个指针 argv[1] .. argv[argc-1] 指向每个这些字符串的第一个字符.argv[0] 是指向一个表示用于执行该程序自身的名字的空结尾多字节字符串(或者当执行环境不支持时,为空字符串 "")的开头字符的指针.
这些字符串是可以改动的,虽然对它们的改动并不会被传回给执行环境:比如可以用 std::strtok 来使用它们.由 argv 所指向的数组的大小至少为 argc+1,其最后一个元素 argv[argc] 保证为一个空指针.