两个字符串操作函数.

/*!brief 复制字符串的后一部分

编写函数strmcpy(s,t,m),将字符串从第m个字符开始的全部字符复制到字串s中去。n
难度系数:简单
param [in] source 源字符串.只读
param [in] dest 目的字符串
param [in] nStart 从第nStart个字符开始复制
bug
-# 未考虑strlen(source) < nStart的情况.(出错)
-# 未考虑dest[]空间不足的情况.(出错)
-# 未考虑source不以'/0'结尾的情况.(出错)
.

pre source is zero ending && strlen(source) > nStart && sizeof(dest) > sizeof(source)
post dest is zero ending   && strcmp(dest, source + nStart) == 0
*/
void LeftSubStr(char *source, char * dest, int nStart)
{
  char *p = source + nStart;
  char *q = dest;
  while (*q++ = *p++);
}

 

//4.编写函数,输入一个字符串,内有数字和非数字字符,将其连续的数字作为一个整数,依次存放到数组A中,并统计有多少个整数。

//不使用库的话:
int isdigit(int c)
{
return !(c < '0' || c >'9');
}

int atoi(char* str)
{
char *p = str;
int sum = *p - '0';
while( isdigit(*++p))
{
sum = sum * 10 + (*p - '0');
}

return sum;
}


int findDigital(char* str, int buf[], int nLen)
{
char *p = str;
int i;
for (i = 0; i< nLen && *p; i++)
{
while(*p && !isdigit(*++p));
buf[i] = atoi(p);
while(isdigit(*++p));
}
return i;
}

#include <stdio.h>

int main ()
{
  int a[10];
int len = findDigital("-11,2", a, 10);
printf("%d 个, %d, %d", len, a[0], a[1]);
return 0;
}

发布2个字符串处理函数: 1、ParameterValue() 2、ParameterCount() 用法示例: dim TheString as String TheString="欢迎,光临,枕善居,源代码" msgbox ParameterCount(",",TheString) 返回 4 ParameterValue(",",TheString,2) 返回 "欢迎" Public Function ParameterCount(ParseCharacter As String, _ tString As Variant) As Integer Dim CurrentPosition As Integer Dim ParseToPosition As Integer Dim CurrentToken As Integer Dim TempString As String TempString = Trim(tString) + ParseCharacter If Len(TempString) = 1 Then Exit Function CurrentPosition = 1 CurrentToken = 1 Do ParseToPosition = InStr(CurrentPosition, TempString, _ ParseCharacter) CurrentToken = CurrentToken + 1 CurrentPosition = ParseToPosition + 1 Loop Until (CurrentPosition >= Len(TempString)) ParameterCount = CurrentToken - 1 End Function Public Function ParameterValue(ParseCharacter As String, _ tString As Variant, _ Index As Integer) As String Dim CurrentPosition As Integer Dim ParseToPosition As Integer Dim CurrentToken As Integer Dim TempString As String TempString = Trim(tString) + ParseCharacter If Len(TempString) = 1 Then Exit Function CurrentPosition = 1 CurrentToken = 1 Do ParseToPosition = InStr(CurrentPosition, TempString, _ ParseCharacter) If Index = CurrentToken Then ParameterValue = Mid$(TempString, CurrentPosition, _ ParseToPosition - CurrentPosition) Exit Function End If CurrentToken = CurrentToken + 1 CurrentPosition = ParseToPosition + 1 Loop Until (CurrentPosition >= Len(TempString)) End Function
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值