当前位置:首页 » 编程语言 » C语言字符串转为函数调用
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

C语言字符串转为函数调用

发布时间: 2022-08-21 06:58:33

1. c语言字符串处理函数有哪些

1、puts函数——输出字符串的函数

一般的形式为puts(字符串组)

作用:将一个字符串输出到终端。如,char一个string,并赋予初值。调用puts(string);进行字符串的输出。

2、gets函数——输入字符串的函数

一般的形式:gets(字符数组)

作用:从终端输入一个字符串到字符数组,并且得到一个函数值成为字符数组的起始地址。

gets(str);

键盘输入,,,,你懂得。

注意:puts和gets函数只能输出或者输入一个字符串。

3、strcat函数——字符串连接函数

一般的形式:strcat(字符数组1,字符数组2);

作用:把两个字符串数组中字符串连接起来,把字符串2连接到字符串1的后面。

说明:字符数组1必须足够大,以便容纳连接后的新字符串。

4、strcpy/strncpy函数——字符串复制函数

一般形式:strcpy(字符数组1,字符串2);

作用:将字符串2复制到字符数组1中去。

如:char str1[10],str2[]="DongTeng";

strcpy(str1,str2);

执行后的结果为:你懂得

注意:

1. 不能用赋值语句直接将一个字符串常量或者字符数组直接给一个字符数组。

2. 用strncpy可以赋值指定的位置的字符。strncpy(str1,str2,3);将str2中的第3个字符复制到str1中。

5、strcmp函数——字符串比较函数

一般形式:strcmp(字符串1,字符串2);

作用:用来比较两个字符串的差异。具有不同的比较规则。

6、strlen函数——测字符串长度的函数

一般形式:strlen(字符数组);

如:char str[10]="DongTeng";

printf("%d",strlen(str));

得到的结果是:5

7、strlwr函数——转换为小写的函数

一般形式:strlwr(字符串);

8、strupr函数——转换为大写的函数

一般形式:strupr(字符串)。

2. C语言字符串函数调用求教

key=getchar();//gets(&key);

3. C语言中如何编写一个字符串复制函数,并在主函数中调用它。

#include<stdio.h>

char *custom_cpy(char *to,char *from);

int main(int argc,char *argv[]){

char *from = "i like c langanger";

char to[30];

char *ptr = custom_cpy(to,from);

printf("%s,%s ",ptr,to);

return 0;

}

char *custom_cpy(char *to,char *from){

if(to == NULL || from == NULL){

return NULL;

}

char *p = to;

for(;*from!='';from++,to++){

*to = *from;

}

*to = '';//拷贝完毕之后一定要加一个结束符号

return p;

}

(3)C语言字符串转为函数调用扩展阅读:

字符串相关函数应用:

1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn。

例:concat(‘11’,'aa’)='11aa’;

2. 求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。

例:(‘abdag’,2,3)=’bda’;

3. 删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。

例:s:=’abcde’;delete(s,2,3);结果s:=’ae’;

4. 插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置

例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’;

5. 求字符串长度 length(s) 例:length(‘12abc’)=5;

网络-字符串

4. C语言字符串函数调用

gfedcba
f是一个交换函数
p=str+strlen(str)/2+1;
p就指向了 str+4 就是 e
p-2 指向 c
f的效果就是
从e开始直到g
和前面的c到a互换

5. C语言中,如何将输入的字符串作为调用的函数名

可以调用

例如
char str[100]={0};
gets(str);
if (strcmp(str,"mat x")==0)
{
mat(x);
}

大体上就是这样

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

6. c语言,这个题怎么调用字符串函数实现会这样做,不会调用函数,求解

你这样做是调用函数了,虽然用的是memcpy函数,但也是函数。

不调用函数的做法,是使用循环,逐字符复制,直到字符串结束符''。

voidnofunc(char*src,char*dest)
{
inti;

for(i=0;src[i]!='';i++)
dest[i]=src[i];
dest[i]='';
}

调用函数的做法,是使用strcpy()函数,而不是使用memcpy。

strcpy(dest,src);

这俩的区别在于,strcpy会把字符串结束符''复制过来,而memcpy则不会判断是否结束,而是按指定的长度来复制。如果使用memcpy,你复制的长度必须是strlen+1才行。你这个程序,如果目的字符串不是刚刚好与源字符串长度相等的话,就能看出有错误。

char*src="abc";
chardest[100];

strcpy(dest,"123");/*目的字符串刚好也是3个字符*/
memcpy(dest,src,strlen(src));
printf("[%s] ",dest);/*如果这样调用,结果是正常的,刚好是abc*/

strcpy(dest,"12345");
memcpy(dest,src,strlen(src));
printf("[%s] ",dest);/*如果这样调用,结果是错误的,应该是abc45*/

/*而使用strcpy就不会有问题*/
strcpy(dest,"12345");
strcpy(dest,src);
printf("[%s] ",dest);/*这样调用结果就是正确的abc*/

7. c语言怎么将字符串转换成对应函数

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

8. c语言编程 从键盘上输入一个字符串通过函数调用的方法使该字符串翻转 并输出这个翻转后的字符串

1 输入字符串;

2 调用函数进行翻转,可以通过将对称位置字符交换值实现;

3 输出结果。

代码如下:

voidrevers(char*s)
{
char*p=s,c;
while(*p)p++;
p--;
while(p>s)
{
c=*p;
*p=*s;
*s=c;
}
}

intmain()
{
chars[100];
scanf("%s",s);
revers(s);
printf("%s",s);
}

9. c语言:字符串做为函数参数传递

1、值传递

void swap(int x,int y)

{ int temp = x;

x = y;

y = temp;

}void main()

{

int a = 10, b = 20;

swap(a, b);

}

执行后,并不会交换。

2、引用传递

void swap(int &x,int &y)

{ int temp = x;

x = y;

y = temp;

}void main()

{

int a = 10, b = 20;

swap(a, b);

printf("a=%d b=%d ", a, b);

}

执行后,发生交换。

3、指针传递

void swap(int *x,int *y)

{ int temp = *x; *x = *y; *y = temp;

}void main()

{

int a = 10, b = 20;

swap(&a, &b);

printf("a=%d b=%d ", a, b);

}

执行后,发生交换。

参数传递只有上面三种,但是如果加上数组,就会产生几种新形式。

首先,明确数组型变量名本身只是该数组所占存储空间的首地址:

int a[3] = { 1, 2, 3 }; int *p = a; //等价于下行 //int *p = &a[0];

printf("%d", *p);

典型的数组做参数。

void fun(char s[]){ for (int i = 0; s[i] != ''; i++)

printf("%c", s[i]);

}void main()

{ char str[] = "Hello World!";

fun(str);

}

函数调用时,这里系统不会为形参分配数组存储空间,而是仅仅分配一个存放数组地址(第一个元素地址)的存储空间,此后,将实参数组的首地址传递给形参变量。

其实本质与下相同,只不过还是数组形式的(数组名代替指针)。

既然数组型变量名本身只是该数组所占存储空间的首地址,我们当然可以用指针做形参来接收数组实参。

void fun(char *p){ while (*p)

{

printf("%c", *p);

p++;

}

}void main()

{ char str[] = "Hello World!";

fun(str);

}

不过问题是如果这样,无法把握数组结束(除非知道数组长度)。而对于字符数组(上例),由于字符串末尾有结束标志''(ascii码正好是0),所以就很容易利用指针来判断字符串是否结束。

(9)C语言字符串转为函数调用扩展阅读:

调用带参数的函数:

在调用函数时,可以向其传递值,这些值被称为参数。

这些参数可以在函数中使用。

可以发送任意多的参数,由逗号 (,) 分隔:

myFunction(argument1,argument2)。

当声明函数时,请把参数作为变量来声明:

function myFunction(var1,var2){这里是要执行的代码}。

变量和参数必须以一致的顺序出现。第一个变量就是第一个被传递的参数的给定的值,以此类推。

按值传递参数:

按值传递参数时,是将实参变量的值复制一个到临时存储单元中,如果在调用过程中改变了形参的值,不会影响实参变量本身,即实参变量保持调用前的值不变。

按值传递参数时,需要在参数名前加"ByVal"关键字。

按地址传递参数:

按地址传递参数时,把实参变量的地址传送给被调用过程,形参和实参共用内存的同一地址。在被调用过程中,形参的值一旦改变,相应实参的值也跟着改变。

如果实参是一个常数或表达式,Visual Basic 6.0会按"传值"方式来处理,按地址传递不需要"ByVal"关键字。

按数组传递参数:

在VB6.0中,允许使用数组作为实参传递到子过程的形参中,数组传递必须采用地址传递的方式来传递参数。数组参数在传递时应注意以下两个方面:

① 在实参和形参列表中只写数组名,忽略维数的定义,但圆括号不能省,当数组作为参数传递时,系统将实参数组的起始地址传给过程,使形参数组也具有与实参数组相同的起始地址,若参数是多维数组,每维以逗号分隔。

② 被调过程可分别通过Lbound和Ubound函数确定实参数组的下界和上界。

参考资料来源:网络-参数传递

参考资料来源:网络-字符串



10. C语言字符串转换函数

你是不是想这样啊
char s[]="4659789";
int num1=atoi (s);

atoi函数里面当然可以用变量了

char num[]={4659789};
你定义的是一个数组大小只有1的数组。
相当于
char num[1]={4659789};
数组中每个元素应该用逗号隔开,因为是char型的
所以应该这样
char num[] = { '4','5','6','7','8','9','\0' };
或者
char num[] = "456789";