求個大神幫幫我吧、
雖然這個很簡單,但是我真的不會、
uj5u.com熱心網友回復:
供參考#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main()
{
char s[100];
char *p = s;//用指標操作自付出按
char tmp[100]={0};//用來保存每一次分割的整數
int sum = 0;
int pos1=0,pos2=0,pos3=0,pos4=0;//四個變數的分割點
gets(s);
for(int i=0;i<strlen(s);i++){
if(isdigit(s[i]) || s[i]=='-'){
pos1++;//找到第一個整數的結束位置,即第一個整數的長度
}
else
{
break;
}
}
strncpy(tmp,p,pos1);//將字串中的整數填充到陣列tmp中
sum += atoi(tmp);//將上一步的字串轉換為整數
memset(tmp,0,sizeof(tmp));//將臨時陣列清空 保存下一個整數
p += pos1; //指標移動到下一個變數的起點,便于拷貝
pos2 = pos1 + 5;//找到字串的結束位置
p += pos2-pos1;//指標移動到下一個變數的起點,便于拷貝
for(int i=0;i<strlen(s);i++){
if(s[i]!=','){
pos3++;//找到第二個整數的結束位置
}
else
{
break;
}
}
pos4 = strlen(s)-pos3; //第三個整數的長度
strncpy(tmp,p,pos3-pos2);//pos3-pos2是第三個整數的長度哦
sum += atoi(tmp);
memset(tmp,0,sizeof(tmp));
p += pos3-pos2;
strncpy(tmp,p+1,pos4);//此處p+1是排除最后一個整數前面的逗號
sum += atoi(tmp);
memset(tmp,0,sizeof(tmp));
printf("%d\n",sum);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/226732.html
標籤:新手樂園
上一篇:純小白
下一篇:C+如何將L和一個宏連接起來
