
首先获得一个字符用ch=getchar()或者scanf ("%c", &ch);
其次判断字符相等直接用==
接着j没有定义
最后输出int数组用循环
参考代码:
#include <stdioh>
#include <stringh>
int main()
{
char a[80] = "abcdefgh\0";
char ch;
int i, m, b[80];
int flag = 0;
ch = getchar();//获取一个字符
m = strlen(a);
for (i = 0; i < m; ++i){
if (a[i] == ch){//找到了,直接判断是否相等
b[flag] = i+1;//记录位置
flag += 1;
}
}
if (flag == 0)printf ("no");
else {
printf ("%d\n", flag);
for (i = 0; i < flag; i++){//对位置进行输出,用循环
printf ("%d ", b[i]);
}
printf ("\n");
}
return 0;
}
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2,3 delims=:" %%i in (testtxt) do (
set /a n+=1
set m=%%i
set m=!m:~-1!
for /f "tokens=1,2 delims= " %%a in ("%%k") do (
set size!n!=%%b
set name!n!=!m!:%%j%%a
)
)
for /l %%i in (1,1,!n!) do (
echo size^(%%i^)=!size%%i! name^(%%i^)=!name%%i!
)
pause
goto :eof
'用VBS写了一个,看看可不可以?
dim i,sm
set fso=createobject("scriptingfilesystemobject")
set file=fsoopentextfile("testtxt")
do while fileatendofstream<>true
n=trim(filereadline)
i=i+1
redim name(i),size(i)
text n
loop
fileclose
wscriptecho sm
set fso=nothing
set file=nothing
set i=nothing
set sm=nothing
sub text(a)
k=instr(a," "):j=instrrev(a," ")
size(i)=mid(a,j+1):name(i)=mid(a,k+1,j-k-1)
sm=sm&"name("&i&")="&name(i)&vbcrlf&"size("&i&")="&size(i)&vbcrlf
end sub
import javautilregex;
public class Test {
public static void main(String[] args){
String str = "addcjbjacffbcd";
String reg = "a[^a]b";
//利用正则表达式定义规则,a开头中间除了a任意都获取,b结尾
Pattern p = Patterncompile(reg);
Matcher m = pmatcher(str);
while(mfind()){
Systemoutprintln(mgroup());
}
}
}
以上就是关于怎么查找一个string 字符串中的子字符串出现的次数和位置全部的内容,包括:怎么查找一个string 字符串中的子字符串出现的次数和位置、如何用批处理提取字符串中的子字符串、java中怎样从字符串中获取以a开头b结尾的子字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)