C语言 函数的形参怎么对字符串引用?

C语言 函数的形参怎么对字符串引用?,第1张

#include<stdioh>

void func(char ,char B);

void main()

{

char A[10];

char B[10];

scanf("%s",A);

func(A,B);

printf("%s\n",B);//输出B

}

void func(char A,char B)

{

printf("%c\n",A[0]);

B[0]=A[1];

B[1]='\0';//字符串结尾为\0;

}

c语言是没法把字符串转换成对应函数的,c语言是结构化语言,程序怎么执行在编译时已经确定,没法像c#之类的托管代码高级语言能够动态绑定或者叫后期绑定。因为托管代码有运行时去选择执行,而c语言编译后的可执行文件为 *** 作系统直接调用了,所以没法动态绑定。

#include <stdioh>

#include <stringh>

#include <malloch>

void niXuArr(char arr[]);

char niXuPoint(char p);

int main(void)

{

char arr[] = {"abcdefghigk"}, p = "you are the first";

printf("逆序前:%s\n逆序后:", arr);

niXuArr(arr);

printf("%s\n", arr);

printf("逆序前:%s\n逆序后:", p);

p = niXuPoint(p);

printf("%s\n", p);

return 0;

}

void niXuArr(char arr[])

{

int i = 0;

char temp = 0;

for(i = 0; i < strlen(arr) / 2; i++)

{

temp = arr[i];

arr[i] = arr[strlen(arr) - 1 - i];

arr[strlen(arr) - 1 - i] = temp;

}

}

char niXuPoint(char p)

{

char pHead = NULL, pTail = NULL, temp = 0;

int i = 0;

pHead = (char)malloc(strlen(p));

pTail = p + strlen(p) - 1;

p = pHead;

for(i = 0; i < strlen(p); i++)

{

pHead++ = pTail--;

}

pHead = '\0';

return p;

}

可以调用

例如

char str[100]={0};

gets(str);

if (strcmp(str,"mat x")==0)

{

mat(x);

}

大体上就是这样

具体的 函数的参数什么的 需要你自己从上面的字符串里解析

在C语言中,数组作为参数,进行传递时,传递的是指针 ,换句话说,字符数组作为参数,进行传递时,传递的是字符数组的起始地址,相当于一个字符指针,两者没有区别。比如下面的代码:

#include <stdioh>

void f1(char s) { printf("%s\n", s);}

void f2(char sa[]) { printf("%s\n", sa);}

int main()

char rsa[] ="world hello";

f1(rsa);

f2(rsa);

return 0;

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12185119.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存