一、分解字串法
首先建立這個函式:
/*將字串分解*/
create
function [dbo].[splitchar](
@str_one nvarchar
(100) )
returns @result table
(col nvarchar
(1)) as
begin
declare @number_one int
select @number_one=1
while @number_one<=
len(@str_one)
begin
insert @result select
substring
(@str_one,@number_one,1)
select @number_one=@number_one+1
end
return
end
然後建立如下函式
/*求字串中漢字個數*/
create
function [dbo].[chinesecountone](
@str_one nvarchar
(200) )
returns
intas
begin
declare @number_one int
select @number_one =
count
(*)from dbo.splitchar(@str_one)
where
ascii
(col)>127
return @number_one
end /*
使用示例
select dbo.[chinesecountone] ('china
中國beijing
北京olympics
奧林匹克')
*/ 二、字元位元組求差法
首先建立這個函式:
create
function [dbo].[chinesecount_two](
@str_one varchar
(200) )
returns
intas
begin
declare @number_one int
set @number_one=(
datalength
(@str_one)-
len(@str_one))
return @number_one
end /*
使用示例
declare @sql_one varchar(200)
set @sql_one='china
中國beijing
北京olympics
奧林匹克'
declare @sql_two nvarchar(200)
set @sql_two='china
中國beijing
北京olympics
奧林匹克
'
select dbo.[chinesecount_two] (@sql_one) '
個數one' ,
dbo.[chinesecount_two] (@sql_two) '
個數two'
--此例說明此方法不受資料型別限制 */
統計字串中的漢字個數
問題描述 統計字串中的漢字個數。解題思路是 從漢字機內碼的特點考慮 乙個漢字是有兩個ascii字元構成,且這兩個字元的ascii碼值小於0。include include using namespace std int getchinesecharactercounts string str 統計字...
求合法字串個數
合法字串個數 題目描述 給定數字n,輸入n個字串。規定合法的字串需要滿足 1.字串首位為大寫英文本元 2.除了首位之外的字元均為小寫英文本元。例如xiaotuzi是乙個合法的字串,而xiaotuzi不是合法的字串 請輸出一共有多少個合法字串 輸入描述 輸入共n 1行 第一行包括乙個整數n n 10 ...
葉子函式分享三十七 求字串中漢字的個數
一 分解字串法 首先建立這個函式 將字串分解 create function dbo splitchar str one nvarchar 100 returns result table col nvarchar 1 as begin declare number one int select n...