c/c++
本帖最后由 18135437048 于 2022-4-16 12:58 编辑#include<stdio.h>
int sum(char* arr){
int sum=0;
printf("%d\n",*arr);
printf("%d\n",arr);
for(int i=0;arr!='\0';i++){//============问题 arr!='\0' c字符串的结束标志不是\0
sum+=*arr;
++arr;
}
return sum;
}
int main(){
char arr={'31','32','33'};
int len=sizeof(arr)/sizeof(char);
int result=sum(arr);
printf("%d",result);
getchar();
}
这样为什么不行
数组length的传递
c语言的痛:传数组必须传len,我想用str \0试试 ++arr;
等同于
arr = arr + 1
(赋值左边不允许是常量) #include<stdio.h>
int sum(int* arr,int length)
{
int sum=0;
printf("%d\n",*arr);
printf("%d\n",arr);
for(int i=0; i<length; i++)
{
sum+=arr;
}
return sum;
}
int main()
{
int arr= {31,32,33};
int len=sizeof(arr)/sizeof(char);
int result=sum(arr,3);
printf("%d",result);
getchar();
}
不知道你想实现什么功能,这个是实现数组累加的代码,不知道你是不是要实现这个功能。 请问 char arr = {'31','32','33'}; 是什么意思? 自增不是arr++吗?
不太理解{:10_330:} 实现符串数组length传递,字符串累加 zzxhh628 发表于 2022-4-16 11:19
#include
int sum(int* arr,int length)
字符串数组不是以\0结束,我不想多传len,so... 傻眼貓咪 发表于 2022-4-16 11:22
请问 char arr = {'31','32','33'}; 是什么意思?
字符自动转int,可以累加 #include <stdio.h>
int sum(char* arr)
{
int sum=0;
printf("%d,%d,%d\n",arr,arr,arr);
for(int i=0; arr!='\0'; i++)
{
sum+=arr;
}
return sum;
}
int main()
{
char arr= {'31','32','33','\0'};
int len=sizeof(arr)/sizeof(char);
int result=sum(arr);
printf("%d\n",result);
getchar();
} #include<stdio.h>
int sum(char arr[]){
char* p=arr;
int i;
for(i=0;*p++!='\0';i++){
printf("%c\n",*p);
}
return 0;
}
int main(){
char arr="Hello";
int len=sizeof(arr)/sizeof(char);
int result=sum(arr);
printf("%d",result);
getchar();
}
ok
页:
[1]