From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.help Subject: Re: count char in string [The Emacs Challenge Competition - round 2, with fallout] Date: Fri, 30 Oct 2020 01:44:15 +0300 Organization: GNU.Support Message-ID: References: <87r1pj41wa.fsf@zoho.eu> <875z6tqh10.fsf@pmatoe> <86sg9wdinl.fsf@x201.butler.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27006"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/+ (1036f0e) (2020-10-18) Cc: help-gnu-emacs@gnu.org To: Leo Butler Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Thu Oct 29 23:46:50 2020 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kYGgy-0006wd-SY for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 29 Oct 2020 23:46:48 +0100 Original-Received: from localhost ([::1]:33820 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kYGgx-0001MF-TH for geh-help-gnu-emacs@m.gmane-mx.org; Thu, 29 Oct 2020 18:46:47 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50164) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYGfA-0000bx-9r for help-gnu-emacs@gnu.org; Thu, 29 Oct 2020 18:44:56 -0400 Original-Received: from static.rcdrun.com ([95.85.24.50]:48597) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kYGf8-00038w-Bm for help-gnu-emacs@gnu.org; Thu, 29 Oct 2020 18:44:55 -0400 Original-Received: from localhost ([::ffff:197.157.0.60]) (AUTH: PLAIN admin, TLS: TLS1.2,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by static.rcdrun.com with ESMTPSA id 00000000002A0B3A.000000005F9B45C2.00004ACC; Thu, 29 Oct 2020 22:44:18 +0000 Content-Disposition: inline In-Reply-To: <86sg9wdinl.fsf@x201.butler.org> Received-SPF: pass client-ip=95.85.24.50; envelope-from=bugs@gnu.support; helo=static.rcdrun.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/10/29 17:01:55 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -3 X-Spam_score: -0.4 X-Spam_bar: / X-Spam_report: (-0.4 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_SORBS_WEB=1.5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:124798 Archived-At: * Leo Butler [2020-10-29 21:08]: > Patrick McAllister writes: > > > ******************************************************** > > Caution: This message was sent from outside the University of Manitoba. > > ******************************************************** > > > > On Wed, Oct 28 2020, Emanuel Berg via Users list for the GNU Emacs text editor wrote: > > > >> round 2: > >> > >> Very simple: we are looking for a function that returns the number of > >> occurrences of a char in a string. > >> > >> Emanuel Berg's solution: > >> > >> (require 'cl-lib) > >> (defun count-char-in-string (the-char str) > >> (let ((c (if (characterp the-char) the-char (string-to-char the-char))) > >> (cs (string-to-list str)) ) > >> (cl-count c cs) )) > >> ;; (count-char-in-string ?a "Emacs skills kills") ; 1 > > Here is a solution for interactive use that is far more flexible than > just counting characters. > > I use the following a lot when editing documents with a maximum > character count: > > M-< M-x replace-regexp [^[:space:]] \& RET > > Or, since I bind replace-regexp to C-x a r, > > M-< C-x a r [^[:space:]] \& RET > > I just did that and the mini-buffer informed me there were 1232 > non-space characters in the buffer. > > Leo > M-x how-many -- Jean Louis